-
Notifications
You must be signed in to change notification settings - Fork 120
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
s3 support? #46
Comments
Currently, read-only access to S3 is possible through the A PR to add S3 support would certainly be welcome. The actual operations should be quite straightforward to implement, similar to the |
thank you! the |
Any updates ? |
@jbms I had a look through the GCS driver. In terms of similarity, were you thinking of using the S3 Rest API?
The AWS docs suggest using the AWS SDK's, perhaps using something like the TransferManager. In that case, a lot of the aws-sdk-cpp code could do much of the heavy lifting instead of using the infrastructure built for the GCS driver.
Would it be more desirable to use the REST API for wider compatibility as the S3 is protocol implemented by other software, minio and ceph, for instance. |
Yes, I was thinking of using the REST API directly. Ultimately the computation of the aws signature only requires a small amount of code, and this would allow tensorstore to have full control over the API usage, and ensure all operations are implemented fully asynchronously. However, using the AWS C++ SDK for S3 (which I believe internally accesses the REST API via libcurl) could also be an option. It would probably require less "development" effort, but may require more effort to integrate the AWS SDK into our build system. I think that the AWS SDK can also be used with third-party implementations like |
If you are interested in adding S3 support, it would certainly be a much-appreciated contribution and we'd be happy to provide guidance on the tensorstore codebase. |
I made a PUT REST API call example where the AWS signature is calculated in Python -- easier to debug and to get an idea of what needs doing. I feel comfortable with the basics involved and it seems doable with the base tensorstore API. Regarding the AWS C++ SDK, grafting the
Yes, I'd like to have a go at this. I'll take another look at the C++ codebase and write up a basic implementation plan and some questions about it. For e.g.: HMAC-SHA256 support,, INI file parsing support for AWS credentials+config |
Includes changes for includes, style, and some fixes from the following pull request: #91 This is still a work in progress, so it is not yet available by default. To use, add a bazel dependency on //tensorstore/kvstore/s3 #46 PiperOrigin-RevId: 562068999 Change-Id: Id660a72224ef865c858484c04985f9fc4f0e3bf5
It seems that tensorstore does not support AWS S3, but only for GCS. Is there any plan to support it?
The text was updated successfully, but these errors were encountered: