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.
- Download & upload file streaming
 - Some coverage (all APIs are tested, but not all errors are reproduced)
 - Very carefully linted
 
- 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
 
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()
}