gitea/modules/packages
Lunny Xiao fb7b743bd0
Azure blob storage support ()
This PR implemented object storages(LFS/Packages/Attachments and etc.)
for Azure Blob Storage. It depends on azure official golang SDK and can
support both the azure blob storage cloud service and azurite mock
server.

Replace 
Fix  

- [x] CI Tests
- [x] integration test, MSSQL integration tests will now based on
azureblob
  - [x] unit test 
- [x] CLI Migrate Storage
- [x] Documentation for configuration added

------

TODO (other PRs):
- [ ] Improve performance of `blob download`.

---------

Co-authored-by: yp05327 <576951401@qq.com>
..
alpine Integrate alpine `noarch` packages into other architectures index ()
cargo Add Cargo package registry ()
chef Add Chef package registry ()
composer Replace `interface{}` with `any` ()
conan Use ErrInvalidArgument in packages ()
conda Use docs.gitea.com instead of docs.gitea.io ()
container Use docs.gitea.com instead of docs.gitea.io ()
cran Add CRAN package registry ()
debian Prevent newline errors with Debian packages ()
goproxy Add Go package registry ()
helm Replace `interface{}` with `any` ()
maven Add support for different Maven POM encoding ()
npm Add support for npm bundleDependencies ()
nuget Support nuspec manifest download for nuget packages ()
pub Use docs.gitea.com instead of docs.gitea.io ()
pypi Implement FSFE REUSE for golang files ()
rpm Use new RPM constants ()
rubygems Enable more `revive` linter rules ()
swift Add Swift package registry ()
vagrant Implement FSFE REUSE for golang files ()
content_store.go Azure blob storage support ()
hashed_buffer.go Close all hashed buffers ()
hashed_buffer_test.go Add Debian package registry ()
multi_hasher.go Implement FSFE REUSE for golang files ()
multi_hasher_test.go Replace fmt.Sprintf with hex.EncodeToString ()