mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Azure blob storage support (#30995)
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 #25458 Fix #22527 - [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>
This commit is contained in:
@@ -144,18 +144,29 @@ func TestPackageGeneric(t *testing.T) {
|
||||
t.Run("ServeDirect", func(t *testing.T) {
|
||||
defer tests.PrintCurrentTest(t)()
|
||||
|
||||
if setting.Packages.Storage.Type != setting.MinioStorageType {
|
||||
t.Skip("Test skipped for non-Minio-storage.")
|
||||
if setting.Packages.Storage.Type != setting.MinioStorageType && setting.Packages.Storage.Type != setting.AzureBlobStorageType {
|
||||
t.Skip("Test skipped for non-Minio-storage and non-AzureBlob-storage.")
|
||||
return
|
||||
}
|
||||
|
||||
if !setting.Packages.Storage.MinioConfig.ServeDirect {
|
||||
old := setting.Packages.Storage.MinioConfig.ServeDirect
|
||||
defer func() {
|
||||
setting.Packages.Storage.MinioConfig.ServeDirect = old
|
||||
}()
|
||||
if setting.Packages.Storage.Type == setting.MinioStorageType {
|
||||
if !setting.Packages.Storage.MinioConfig.ServeDirect {
|
||||
old := setting.Packages.Storage.MinioConfig.ServeDirect
|
||||
defer func() {
|
||||
setting.Packages.Storage.MinioConfig.ServeDirect = old
|
||||
}()
|
||||
|
||||
setting.Packages.Storage.MinioConfig.ServeDirect = true
|
||||
setting.Packages.Storage.MinioConfig.ServeDirect = true
|
||||
}
|
||||
} else if setting.Packages.Storage.Type == setting.AzureBlobStorageType {
|
||||
if !setting.Packages.Storage.AzureBlobConfig.ServeDirect {
|
||||
old := setting.Packages.Storage.AzureBlobConfig.ServeDirect
|
||||
defer func() {
|
||||
setting.Packages.Storage.AzureBlobConfig.ServeDirect = old
|
||||
}()
|
||||
|
||||
setting.Packages.Storage.AzureBlobConfig.ServeDirect = true
|
||||
}
|
||||
}
|
||||
|
||||
req := NewRequest(t, "GET", url+"/"+filename)
|
||||
@@ -168,7 +179,7 @@ func TestPackageGeneric(t *testing.T) {
|
||||
|
||||
resp2, err := (&http.Client{}).Get(location)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, http.StatusOK, resp2.StatusCode)
|
||||
assert.Equal(t, http.StatusOK, resp2.StatusCode, location)
|
||||
|
||||
body, err := io.ReadAll(resp2.Body)
|
||||
assert.NoError(t, err)
|
||||
|
Reference in New Issue
Block a user