Skip to content

Replace S3 downloadInParallel by using Content-Range requests instead of undocumented S3 part requests #1303

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ffeldhaus opened this issue Sep 15, 2017 · 4 comments
Labels
feature-request A feature should be added or improved.

Comments

@ffeldhaus
Copy link

As stated in #1172 AWS SDK for Java currently uses an undocumented S3 functionality to parallelize downloads using part requests instead of using the documented Content-Range requests as AWS SDK for Ruby and Python do.

There are two advantages for changing the current behaviour:

  1. Using Content-Range requests is much more flexible as the client can use arbitrary part sizes for downloads instead of the predefined part sizes which were created when the object was uploaded. This can potentially speed up the transfer by using more parts than during upload or a different part size. Also the initial HEAD request to retrieve the number of parts will not be necessary, speeding up the time to start the download and thus reducing time to first byte latency.
  2. AWS SDK for Java would use officially documented S3 functionality instead of undocumented functionality which will reduce issues with S3 compatible solutions
@shorea shorea added the feature-request A feature should be added or improved. label Sep 18, 2017
@shorea
Copy link
Contributor

shorea commented Sep 19, 2017

This sounds like a good suggestion @ffeldhaus, I'll discuss with the team to see if that's the direction we want to take.

@ffeldhaus
Copy link
Author

@shorea do you have a decision in this topic? I‘d be glad to contribute the code via a pull request.

@akash18
Copy link

akash18 commented Sep 10, 2018

Any updates on this issue?

@debora-ito
Copy link
Member

@ffeldhaus @akash18

The SDK team has reviewed the feature request list for V1 and decided not to make this change, as they are concentrating efforts on V2 new features. It will be considered for the TransferManager refactor in V2, see the referenced issue above. I'll go ahead and close this.

Please feel free to comment on the V2 issue with your use case, and reach out if you have further questions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request A feature should be added or improved.
Projects
None yet
Development

No branches or pull requests

4 participants