Skip to content
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

Cross Bucket Copy Support #5284

Open
tustvold opened this issue Jan 5, 2024 · 4 comments
Open

Cross Bucket Copy Support #5284

tustvold opened this issue Jan 5, 2024 · 4 comments
Labels
enhancement Any new improvement worthy of a entry in the changelog

Comments

@tustvold
Copy link
Contributor

tustvold commented Jan 5, 2024

Draft as needs further design, and a motivating use-case

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

Currently ObjectStore only supports copying files within the current bucket, this is despite most stores having APIs for performing efficient copies across buckets within the same cloud provider.

Describe the solution you'd like

I would like some mechanism to support copying between ObjectStore, that is able to make use of the more efficient APIs where they are possible. I don't have a good idea of how to achieve this, nor a motivating use-case for this functionality.

Describe alternatives you've considered

Additional context

@tustvold tustvold added the enhancement Any new improvement worthy of a entry in the changelog label Jan 5, 2024
@Xuanwo
Copy link
Member

Xuanwo commented Jan 5, 2024

AWS S3 allows buckets in the same region to utilize the CopyObject feature, though including a bucket name directly in the API may seem odd.

@tustvold
Copy link
Contributor Author

tustvold commented Jan 5, 2024

Agreed, I don't have a good idea for how to expose this currently. One option might be to tie into the URL parsing stuff we already have, so the user would provide the source and destination as URLs that would then get processed by a free function

@Xuanwo
Copy link
Member

Xuanwo commented Jan 5, 2024

One option might be to tie into the URL parsing stuff we already have, so the user would provide the source and destination as URLs that would then get processed by a free function

Seems cool to have copy("s3://bucket_a/file", "s3://bucket_b/file").

The downside is that users might need to manually construct the URL. We might also need to provide let url = store.get_url("file")?

@tustvold
Copy link
Contributor Author

tustvold commented Jan 5, 2024

Seems cool to have copy("s3://bucket_a/file", "s3://bucket_b/file").

Yeah something like that, not entirely sure how credentials would work, but that's broadly where my head was at.

We might also need to provide let url = store.get_url("file")?

I think perhaps the expectation here is that the user is already outside the "single-bucket" model of ObjectStore, and so probably already are constructing these URLs somehow. FWIW a get_url method has been discussed before on #4162, it's non-trivial 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Any new improvement worthy of a entry in the changelog
Projects
None yet
Development

No branches or pull requests

2 participants