There is already a PR for this here https://github.com/go-gitea/gitea/pull/7795 What needs to be done: - [x] make gitea use an filesystem abstraction for files using this project https://github.com/spf13/afero, [see this comment](https://github.com/go-gitea/gitea/pull/7795#issuecomment-546772370) - [x] make [this PR](https://github.com/go-gitea/gitea/pull/7795 ) work with it and make sure to rebase it on latest master - [x] add tests to the gocloud code - [x] migration tool from file:// to cloud - [x] make sure file names are reversible Use min.io server for testing https://docs.min.io/docs/minio-quickstart-guide.html Use https://github.com/fsouza/fake-gcs-server to test gcp storage.