keksmd opened a new pull request, #966: URL: https://github.com/apache/incubator-graphar/pull/966
### Reason for this PR Implements the optional S3 byte-storage adapter proposed in #965. It is an independent successor to the merged storage API/local adapter work (#958, #960), and does not depend on the pending columnar IO change in #961. Relates to #965, #953, and #947. ### What changes are included in this PR? - Adds optional `graphar-storage-s3`, with AWS SDK v2 confined to that module. - Validates `s3://bucket/key` URIs and provides `HEAD` existence/length, independent seekable inputs, and inclusive byte-range GET reads. - Provides staged output with conditional create versus explicit overwrite. The caller owns the injected `S3Client`. - Adds credential-free contract coverage using an injected in-memory SDK transport for position, range, version pinning, and conditional publish behavior. ### Are these changes tested? Yes. Executed: `mvn --no-transfer-progress -f maven-projects/pom.xml -pl storage-s3 -am clean verify -Dspotless.check.skip=true` Result: BUILD SUCCESS; storage API 3 tests and storage S3 1 contract test passed. Also ran `mvn ... -pl storage-s3 -am spotless:apply`, `pre-commit run --files` for every changed path, and `git diff --check`. A real MinIO transport test is intentionally a subsequent opt-in test-only PR; this PR has no cloud credential requirement. ### Are there any user-facing changes? Yes. Java applications can opt into `graphar-storage-s3` and supply an AWS SDK v2 `S3Client` to read and write `s3://` objects through the existing storage API. No existing module gains an AWS dependency. ## Checklist - [x] I have performed a self-review of my own code. - [x] I have formatted my own code using `make cpplint` before submitting when changed files are in the `cpp` directory. - [x] I have performed `pre-commit run` before commit the changed files. - [x] I have added tests to prove my changes are effective. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
