aws-sdk-java-v2 icon indicating copy to clipboard operation
aws-sdk-java-v2 copied to clipboard

Mulitpart download workaround

Open L-Applin opened this issue 1 year ago • 1 comments

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 install succeeds
  • [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-change script and following the instructions. Commit the new file created by the script in .changes/next-release with 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

L-Applin avatar Feb 20 '24 16:02 L-Applin