twpayne / go-vfs

Package vfs provides an abstraction of the os and io packages that is easy to test.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Minio/S3 support

lunny opened this issue · comments

Thanks for the great repository. Do you have any plan to support Minio/S3 support? Maybe you could use minio's SDK to do that.

Hi, thank you for your kind words :) go-vfs always falls back to a real, underlying filesystem in the end. The goal is to make testing on real filesystems easy, S3 behaves very differently to a real filesystem. For such an abstraction, I'd suggest looking at github.com/spf13/afero and particular issues like spf13/afero#11.

commented

Hey

hackpadfs does S3.

https://github.com/hack-pad/hackpadfs/tree/main/examples

it also can run in a browser using the browsers storage indexed-db, as well as memory and on mobiles and desktops.

I was going to extend go-vfs so that it can use hackpad-fs. Then the tests can run in a browser also.

@twpayne @lunny let me know if this is useful and your use case.

it’s pretty fast in a browser too I noticed.

my use case is for running go-git in both a browser and on mobiles and desktops with of course no reliance on a git binary .

The objective of go-vfs is to be backed by real on-disk filesystems, including all their local illogical quirks (e.g. case-insensitive vs case-preserving, special handling of filenames like NUL, and so on).

hackpadfs looks like an interesting project, but it's too simplistic for go-vfs.