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

Implement Other Filesystems Using Go CDK #92

Open
srilman opened this issue Jun 2, 2024 · 3 comments
Open

Implement Other Filesystems Using Go CDK #92

srilman opened this issue Jun 2, 2024 · 3 comments

Comments

@srilman
Copy link

srilman commented Jun 2, 2024

Feature Request / Improvement

Can we add the Go CDK as a File IO option, particularly for remote write support?

For context, the Go CDK (https://gocloud.dev/) is a semi-official interface for interactive with various cloud service solutions, providing common APIs. For the purposes of this library, the blob module (https://pkg.go.dev/[email protected]/blob#pkg-overview) provides the following interfaces for object stores:

  • io/fs.FS
  • io/fs.SubFS
  • io.Writer through Bucket.NewWriter
  • io/fs.File and io.Seeker through Bucket.NewReader
  • Bucket.Delete for removing blobs

It supports the following storage backends:

  • Local Filesystem (although I wouldn't use this, the current LocalFs is simpler)
  • Memory-Based FS for testing
  • S3 for AWS Go SDK V1 and V2
  • Azure Blob
  • Google Cloud Storage

I find that this is preferable to other options like Acero because it is maintained and there are releases more often. Plus, it seems to be tied closer to the Go team.

@srilman
Copy link
Author

srilman commented Jun 2, 2024

In addition, this library is one of the only ones available that supports AWS SDK v2 with write support. The library we are using right now, S3IOFs doesn't for example. And other libraries I've looked at (like VFS) only support V1.

@srilman
Copy link
Author

srilman commented Jun 5, 2024

@zeroshade I think I have something working on my end, once I get a green-light happy to open a PR.

@zeroshade
Copy link
Member

@srilman I'd be happy to review a PR for this, particularly if it simplifies the file io stuff while getting us more storage back ends. I'm currently traveling for a conference, but I'll be able to review the PR next week or the week after. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants