Mulitpart download workaround
Enable Transfer Manager to work with MultipartS3AsyncClient while MultipartS3AsyncClient still throws an exception for multipart download. This will allow Transfer manager to perform get object request, but as a single part, instead of throwing an exception when it is configured with the java-based multipart s3 async client. This PR also enables the default non-CRT Transfer Manager with the java-based multipart s3 async client .
Motivation and Context
While MultipartS3AsyncClient is still incomplete, we still need Transfer Manager to be able to work by default and not throw exception for multipart download. The alternative is to do regular download instead. The MultipartS3AsyncClient will still throw an exception for multipart download.
Modifications
- In non-CRT Transfer Manager, use the delegate s3 async client for get object.
- When calling
TransferManager.create(), make sure we enable multipart on the s3 async client.
Testing
Added unit test checking no exception is thrown for get-object
Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
Checklist
- [x] I have read the CONTRIBUTING document
- [x] Local run of
mvn installsucceeds - [x] My code follows the code style of this project
- [x] My change requires a change to the Javadoc documentation
- [x] I have updated the Javadoc documentation accordingly
- [x] I have added tests to cover my changes
- [x] All new and existing tests passed
- [x] I have added a changelog entry. Adding a new entry must be accomplished by running the
scripts/new-changescript and following the instructions. Commit the new file created by the script in.changes/next-releasewith your changes. - [ ] My change is to implement 1.11 parity feature and I have updated LaunchChangelog
License
- [x] I confirm that this pull request can be released under the Apache 2 license
Quality Gate passed
Issues
2 New issues
Measures
0 Security Hotspots
92.0% Coverage on New Code
0.0% Duplication on New Code