- Notifications
You must be signed in to change notification settings - Fork25
License
NotificationsYou must be signed in to change notification settings
fclairamb/afero-s3
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
It provides anafero filesystem implementation of anS3 backend.
This was created to provide a backend to theftpserver but can definitely be used in any other code.
I'm very opened to any improvement through issues or pull-request that might lead to a better implementation or evenbetter testing.
- Download & upload file streaming
- 75% coverage (all APIs are tested, but not all errors are reproduced)
- Very carefully linted
- File appending / seeking for write is not supported because S3 doesn't support it, it could be simulated by rewriting entire files.
- Chtimes is not supported because S3 doesn't support it, it could be simulated through metadata.
- Chmod support is very limited
Note: Errors handling is skipped for brevity but you definitely have to handle it.
import("github.com/aws/aws-sdk-go/aws""github.com/aws/aws-sdk-go/aws/credentials""github.com/aws/aws-sdk-go/aws/session" s3"github.com/fclairamb/afero-s3")funcmain() {// You create a sessionsess,_:=session.NewSession(&aws.Config{Region:aws.String(region),Credentials:credentials.NewStaticCredentials(keyID,secretAccessKey,""), })// Initialize the file systems3Fs:=s3.NewFs(bucket,sess)// And do your thingfile,_:=fs.OpenFile("file.txt",os.O_WRONLY,0777)file.WriteString("Hello world !")file.Close()}
The initial code (which was massively rewritten) comes from:
- wreulicke's fork
- Itself forked fromaviau's fork.
- Initially proposed asan afero PR byrgarcia and updated byaviau.
About
No description, website, or topics provided.
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.
Contributors11
Uh oh!
There was an error while loading.Please reload this page.