Sruhvx-jpg commented on PR #3165:
URL: https://github.com/apache/iceberg-rust/pull/3165#issuecomment-5730034851
@laskoviymishka Addressed all feedback from the latest review:
1. **SSE-KMS Default Key**: When `s3.sse.type=kms` is set without an
explicit key ID, we now set `aws_server_side_encryption` to `aws:kms` via
`with_config` without passing an empty key ID header.
2. **URL Percent-Decoding**: `parse_s3_url` now decodes percent-encoded
bucket names via `percent_decode_str` (`my%2Dbucket` -> `my-bucket`), fixing
cache key and bucket resolution.
3. **Batch `delete_prefix`**: Piped `store.list()` into
`store.delete_stream()`, leveraging S3's bulk `DeleteObjects` (up to 1,000 keys
per request).
4. **SSE-C MD5**: Verified that `with_ssec_encryption` automatically
computes the MD5 hash via `Md5::new()` and sets
`x-amz-server-side-encryption-customer-key-MD5`. Added a doc-comment to
document this.
5. **Drop Diagnostics**: Added `tracing::warn!` when `ObjectStoreWriter` is
dropped outside an active Tokio runtime context.
6. **Expanded Integration & Unit Tests (AI-assisted)**:
- `test_file_io_s3_multipart_writer_past_threshold`: Writes 12 MiB
(crossing the 10 MiB threshold) to test multi-part S3 chunking and assembly
end-to-end.
- `test_file_io_s3_delete_prefix_bulk`: Tests bulk deletion over 15
objects under a prefix.
- `test_file_io_s3_range_reader`: Tests byte-range slicing against S3.
- `test_file_io_s3_multipart_writer_drop_aborts`: Tests multipart upload
abort on drop.
- Test cases were scaffolded with AI assistance and verified end-to-end
against local S3/LocalStack.
All checks, clippy lints, and integration tests are green. Ready for another
pass!
--
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]