Commit Graph
22 Commits
Author SHA1 Message Date
Rohan Verma 2334cb5429 refactor: split simples3.go into logical modules
Split monolithic simples3.go (1064 LOC) into 5 focused modules:
- simples3.go (141 LOC) - Core S3 struct and configuration
- helpers.go (97 LOC) - Utility functions
- iam.go (202 LOC) - IAM credential handling
- list.go (260 LOC) - List operations
- object.go (409 LOC) - File operations

Split simples3_test.go (912 LOC) into 4 test modules:
- simples3_test.go (118 LOC) - Shared test helpers
- iam_test.go (110 LOC) - IAM tests
- list_test.go (321 LOC) - List operation tests
- object_test.go (381 LOC) - File operation tests

Zero functional changes. All tests pass identically. 72.5% test coverage maintained.

"Review v0.10.2 code refactor"
2025-11-26 14:57:15 +05:30
Rohan Verma d92dedd08d feat: add ListAll iterator method for Go 1.23+ pagination 2025-09-23 10:14:51 +05:30
Rohan Verma f661a85ff3 feat: implement Simple List API for S3 objects
- Add List method with ListInput and ListResponse structs following simples3 patterns
- Implement pagination, prefix filtering, and delimiter grouping
- Add comprehensive test suite for List functionality
- Update tests to use environment variables instead of hardcoded values
- Fix deprecated io/ioutil usage throughout codebase
- Add comprehensive README with API documentation and examples
- Add Nix development environment with flake.nix
- Add Justfile for modern command runner
- Add Docker Compose setup for local MinIO testing
- Update GitHub Actions to use Nix and Justfile for CI consistency
- Fix test naming and setup flow issues

New API:
s3.List(ListInput{
    Bucket: "my-bucket",
    Prefix: "documents/",
    MaxKeys: 100,
})

All tests pass with new simplified API design.
2025-09-18 16:17:08 +05:30
Rohan Verma 1cf2d7d250 fix: add tests for imdsv2 2024-07-03 16:19:50 +05:30
Rohan de82585958 feat: add support for DigitalOcean
This commit adds a x-amz-date header which is an undocumented
requirement of DO API requests.
2022-02-21 10:14:17 +05:30
Rohan 66870855b7 feat: add support for timeout and customization in IAM setup.
This commit adds a defaultHTTPClient to have a timeout of 10s
instead of the one provided by Go. It introduces a few new methods such
as
- FetchAndSetIAMData which is a helper method to be able to use the
custom http client set by the user.

Closes #19
2022-01-07 10:53:21 +05:30
Rohan a9d0bbf9a8 feat: add support for FilePut 2021-12-29 13:59:45 +05:30
Rohan Verma eac235b2b6 feat: add support for FileDetails/HEAD API call (#14) 2021-07-19 13:41:36 +05:30
Jack Henschel bf02e3bacf fix: Ensure trailing slash in CustomEndpoint is handled gracefully 2021-02-03 17:48:04 +02:00
Jack Henschel c97ddac6df test: Check filenames with special characters work correctly 2021-02-03 17:47:51 +02:00
Jack Henschel 2c7094bdb6 Allow user to specify protocol for custom endpoint
In local setups, such as a Minio [1] instance in a Docker container,
the protocol may not always be HTTPS (like for public production
endpoints), but instead just plain HTTP.
To support this use-case, the user can specify a protocol at the
beginning of the custom endpoint URI (either http:// or https://).

To maintain backwards compatibility, the protocol defaults to HTTPS.

The patch also includes a test case to assert this behavior.

[1] https://hub.docker.com/r/minio/minio
2020-09-15 09:04:34 +02:00
Rohan Verma 089155520f feat: adds download file 2020-01-03 16:32:19 +05:30
Rohan Verma 6f4b748717 refactor: move avatar to testdata folder 2019-12-11 15:32:55 +05:30
Rohan Verma aba89e779a refactor: minor doc changes 2019-12-11 13:54:46 +05:30
Liut 9a5e82a977 Add Endpoint for some compatible instance and fix time format (#3)
* Add Endpoint for some compatible instance.

* Fix: InvalidExpiration
* Fix: RequestTimeTooSkewed

Compatible s3: https://developer.qiniu.com/kodo/manual/4088/s3-access-domainname

* - clean code

* Fix: InvalidExpiration
2019-12-11 07:53:05 +00:00
Rohan Verma f3fc241849 fix: decouple http client from library 2019-01-15 16:27:02 +05:30
Rohan Verma f50dc493f8 test: NewUsingIAM mock 2018-12-28 14:59:45 +05:30
Rohan Verma c3e6335634 fix: Delete credentials unsupported authorization type 2018-12-26 15:44:16 +05:30
Rohan Verma 8079b244c7 feat: read response from 201 on file upload 2018-12-26 13:36:35 +05:30
Rohan Verma d218b23f05 feat: Presigned URLs 2018-12-24 13:36:29 +05:30
Rohan Verma 157aa88554 docs: Add missing docstrings 2018-12-06 16:48:37 +05:30
Rohan Verma f30c5f9052 init 2018-12-06 15:54:47 +05:30