keksmd opened a new issue, #965: URL: https://github.com/apache/incubator-graphar/issues/965
### Describe the enhancement requested Add an optional `graphar-storage-s3` adapter for the dependency-light storage API merged in #958 and #960. It must make GraphAr physical readers and writers able to access `s3://` objects without adding AWS dependencies to metadata or the storage API. Component(s): Java ## Scope - Add an optional module depending on `graphar-storage-api` and AWS SDK v2 S3 only. - Implement validated `s3://bucket/key` URI handling, `HEAD` existence/length, independent seekable inputs, byte-range `GET` reads, and staged local output with conditional create versus overwrite. - Keep caller ownership of the injected `S3Client`; no global client lifecycle. - Add credential-free unit coverage with an in-process S3-compatible HTTP endpoint for range, position, EOF, URI validation, and create semantics. ## Non-goals No GraphAr layout reader/writer, Parquet integration, Iceberg, Hadoop/S3A, Arrow, or mandatory cloud credentials. A real MinIO transport test follows as a separately reviewable opt-in test slice. ## Compatibility and acceptance The adapter remains Java 11 compatible and optional. Reads must use inclusive S3 Range requests while preserving the `SeekableInput` contract; a fresh open owns an independent position. `create()` must not overwrite an existing object and `createOrOverwrite()` may replace it. Focused Maven verification and pre-commit must pass. ## Links Relates to storage umbrella #953 and reader/writer umbrella #947. This is deliberately independent of PR #961, which changes the physical batch representation. -- 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]
