https://github.com/fclairamb/afero-dropbox
Drobpox implementation of an afero backend
https://github.com/fclairamb/afero-dropbox
Last synced: about 1 year ago
JSON representation
Drobpox implementation of an afero backend
- Host: GitHub
- URL: https://github.com/fclairamb/afero-dropbox
- Owner: fclairamb
- License: mit
- Created: 2021-02-26T14:48:32.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-04-08T14:15:23.000Z (about 1 year ago)
- Last Synced: 2025-04-10T05:48:19.353Z (about 1 year ago)
- Language: Go
- Size: 43.9 KB
- Stars: 3
- Watchers: 2
- Forks: 2
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Dropbox Backend for Afero
[](https://golang.org/doc/devel/release.html)

[](https://codecov.io/gh/fclairamb/afero-dropbox)
[](https://goreportcard.com/report/fclairamb/afero-dropbox)
[](https://godoc.org/github.com/fclairamb/afero-dropbox)
## About
It provides an [afero filesystem](https://github.com/spf13/afero/) implementation of a [Dropbox](https://www.dropbox.com/) backend.
This was created to provide a backend to the [ftpserver](https://github.com/fclairamb/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](https://github.com/dropbox/dropbox-sdk-go-unofficial).
## 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.
```golang
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()
}
```