Replace the github.com/spf13/afero dependency with a purpose-built FileStorage interface (Open, Write, Stat, Remove, MkdirAll) with three implementations: localStorage (with basePath), s3Storage (with key prefix), and memStorage (for tests). Each implementation owns its base path — callers pass only file IDs. Delete s3fs.go, change File.File from afero.File to io.ReadCloser, and fix duplication flows to buffer content for seeking. |
||
|---|---|---|
| .. | ||
| auth | ||
| avatar | ||
| background | ||
| dump | ||
| keyvalue | ||
| migration | ||