google-cloud-go icon indicating copy to clipboard operation
google-cloud-go copied to clipboard

storage: Support parallel composite uploads for faster transfers

Open stanhu opened this issue 5 years ago • 11 comments

Is your feature request related to a problem? Please describe.

gsutil supports parallel composite uploads, but the Google Cloud Storage SDKs do not.

For large files, transfers to Google Cloud Storage could be significantly faster if chunks of data are uploaded simultaneously. The Amazon SDKs natively support multi-threaded, multipart uploads with Golang, Ruby, and Python libraries.

Describe the solution you'd like

gsutil implements this in Python.

Ideally there would be a simple boolean parameter, such as ParallelCompositeUpload, that would activate this mode in the bucket Write.

Describe alternatives you've considered

This could be implemented in the application layer, but it really belongs in the SDK.

Additional context Add any other context or screenshots about the feature request here.

stanhu avatar Nov 17 '20 00:11 stanhu

I'd say this is comparable to #1672. It's a very reasonable feature request, but would entail more involved client-side logic than we usually include in this library, which is a fairly thin client. I'll raise internally whether this can be prioritized.

tritone avatar Nov 19 '20 03:11 tritone

@tritone Can you please ask internally about the similar request to add this in google-cloud-ruby as well?

googleapis/google-cloud-ruby#8147

quartzmo avatar Nov 19 '20 19:11 quartzmo

@tritone Any update as to whether or not this feature can be prioritized?

quartzmo avatar Jan 13 '21 19:01 quartzmo

@quartzmo I don't think we are prioritizing this in the next quarter at least. @frankyn may have more context for Ruby specifically.

tritone avatar Jan 22 '21 22:01 tritone

We are not yet prioritizing this work across languages. It's still in our backlog, and we are working our way back to it.

frankyn avatar Jan 22 '21 22:01 frankyn

@frankyn why you don't want implement it?

Slach avatar Oct 25 '23 16:10 Slach

We do, but it's competing with other work items don't have ETA yet. Thanks for your patience.

frankyn avatar Oct 25 '23 20:10 frankyn

Just wanted to provide a long-delayed update here. We're planning on implementing parallel upload and download features in the newly-created subpackage transfermanager. We did the initial merge for downloads this week, more download features are coming later this month, and uploads should be coming in the second half of the year most likely. Feel free to take a look here: https://pkg.go.dev/cloud.google.com/go/[email protected]/transfermanager ; we are open to hearing feedback.

tritone avatar Jun 05 '24 17:06 tritone

@tritone great news, hope you will update this issue when Uploader will implements

Slach avatar Jun 05 '24 17:06 Slach

Hi, @tritone, I am rather interested in this feature, so since it's been few months since last update just wanted to as, maybe you know if it is currently scheduled or some ETA is assigned? Thanks.

Vytenis-Valutkevicius avatar Oct 18 '24 06:10 Vytenis-Valutkevicius

Hi @tritone, we're also very interested in Go support for this feature! Just wanted to ask when you think it might be ready for production use? Thanks!

begelundmuller avatar Mar 04 '25 12:03 begelundmuller

Base on https://pkg.go.dev/cloud.google.com/go/storage/transfermanager and https://github.com/googleapis/google-cloud-go/tree/storage/v1.51.0/storage/transfermanager I guess it is already released and ready for use?

pingleiwandb avatar Apr 21 '25 03:04 pingleiwandb