Add DefaultPresignedUrlManager getObject implementation for S3 pre-signed URL #6241
+500
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add DefaultPresignedUrlManager getObject implementation for S3 pre-signed URL
Motivation and Context
Implement the DefaultPresignedUrlManager class to enable GET operations using pre-signed URLs, allowing clients to perform operations skipping the signing and endpoint resolution.
Modifications
Added DefaultPresignedUrlManager implementation that supports getObject operations with custom ResponseTransformers. Added TODO to deprecate IS_DISCOVERED_ENDPOINT attribute and replace with SKIP_ENDPOINT_RESOLUTION for better semantics. Added TODO to discuss if the Operation name for the metrics collector has to be changed. This can be addressed after the surface API Review.
Testing
Added comprehensive unit tests for DefaultPresignedUrlManager covering core functionality, error handling, range headers, resolved endpoint null, metric publisher and collector API call verification.
Screenshots (if appropriate)
Types of changes
Checklist
mvn install
succeedsscripts/new-change
script and following the instructions. Commit the new file created by the script in.changes/next-release
with your changes.License