modulepackage
0.1.0
Repository: https://github.com/fclairamb/afero-dropbox.git
Documentation: pkg.go.dev
# README
Dropbox Backend for Afero
About
It provides an afero filesystem implementation of a Dropbox backend.
This was created to provide a backend to the ftpserver 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 even better testing.
It is implemented on top of the Dropbox Go SDK.
Key points
- Download & upload file streaming
- Some coverage (all APIs are tested, but not all errors are reproduced)
- Very carefully linted
Known limitations
- File appending / seeking for write is not supported because dropbox doesn't support it
- Chmod / Chtimes are not supported because dropbox doesn't support it
How to use
Note: Errors handling is skipped for brevity, but you definitely have to handle it.
package main
import(
"os"
dropbox "github.com/fclairamb/afero-dropbox"
)
func main() {
// You access an FS with it's token
fs := dropbox.NewFs(os.Getenv("DROPBOX_TOKEN"))
// And do your thing
file, _ := fs.OpenFile("file.txt", os.O_WRONLY, 0777)
file.WriteString("Hello world !")
file.Close()
}
# Functions
NewFs creates new dropbox FS instance.
# Variables
ErrAlreadyOpened is returned when the file is already opened.
ErrInvalidSeek is returned when the seek operation is not doable.
ErrNotSupported is returned when this operations is not supported by S3.