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:
@@ -1862,7 +1862,7 @@ LEVEL = Info
|
||||
;STORAGE_TYPE = local
|
||||
;;
|
||||
;; Allows the storage driver to redirect to authenticated URLs to serve files directly
|
||||
;; Currently, only `minio` is supported.
|
||||
;; Currently, only `minio` and `azureblob` is supported.
|
||||
;SERVE_DIRECT = false
|
||||
;;
|
||||
;; Path for attachments. Defaults to `attachments`. Only available when STORAGE_TYPE is `local`
|
||||
@@ -1901,6 +1901,21 @@ LEVEL = Info
|
||||
;;
|
||||
;; Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
|
||||
;MINIO_BUCKET_LOOKUP_TYPE = auto
|
||||
;; Azure Blob endpoint to connect only available when STORAGE_TYPE is `azureblob`,
|
||||
;; e.g. https://accountname.blob.core.windows.net or http://127.0.0.1:10000/devstoreaccount1
|
||||
;AZURE_BLOB_ENDPOINT =
|
||||
;;
|
||||
;; Azure Blob account name to connect only available when STORAGE_TYPE is `azureblob`
|
||||
;AZURE_BLOB_ACCOUNT_NAME =
|
||||
;;
|
||||
;; Azure Blob account key to connect only available when STORAGE_TYPE is `azureblob`
|
||||
;AZURE_BLOB_ACCOUNT_KEY =
|
||||
;;
|
||||
;; Azure Blob container to store the attachments only available when STORAGE_TYPE is `azureblob`
|
||||
;AZURE_BLOB_CONTAINER = gitea
|
||||
;;
|
||||
;; override the azure blob base path if storage type is azureblob
|
||||
;AZURE_BLOB_BASE_PATH = attachments/
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -2460,6 +2475,11 @@ LEVEL = Info
|
||||
;STORAGE_TYPE = local
|
||||
;; override the minio base path if storage type is minio
|
||||
;MINIO_BASE_PATH = packages/
|
||||
;; override the azure blob base path if storage type is azureblob
|
||||
;AZURE_BLOB_BASE_PATH = packages/
|
||||
;; Allows the storage driver to redirect to authenticated URLs to serve files directly
|
||||
;; Currently, only `minio` and `azureblob` is supported.
|
||||
;SERVE_DIRECT = false
|
||||
;;
|
||||
;; Path for chunked uploads. Defaults to APP_DATA_PATH + `tmp/package-upload`
|
||||
;CHUNKED_UPLOAD_PATH = tmp/package-upload
|
||||
@@ -2533,6 +2553,8 @@ LEVEL = Info
|
||||
;;
|
||||
;; override the minio base path if storage type is minio
|
||||
;MINIO_BASE_PATH = repo-archive/
|
||||
;; override the azure blob base path if storage type is azureblob
|
||||
;AZURE_BLOB_BASE_PATH = repo-archive/
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -2554,8 +2576,15 @@ LEVEL = Info
|
||||
;; Where your lfs files reside, default is data/lfs.
|
||||
;PATH = data/lfs
|
||||
;;
|
||||
;; Allows the storage driver to redirect to authenticated URLs to serve files directly
|
||||
;; Currently, only `minio` and `azureblob` is supported.
|
||||
;SERVE_DIRECT = false
|
||||
;;
|
||||
;; override the minio base path if storage type is minio
|
||||
;MINIO_BASE_PATH = lfs/
|
||||
;;
|
||||
;; override the azure blob base path if storage type is azureblob
|
||||
;AZURE_BLOB_BASE_PATH = lfs/
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -2570,7 +2599,7 @@ LEVEL = Info
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; customize storage
|
||||
;[storage.my_minio]
|
||||
;[storage.minio]
|
||||
;STORAGE_TYPE = minio
|
||||
;;
|
||||
;; Minio endpoint to connect only available when STORAGE_TYPE is `minio`
|
||||
@@ -2600,6 +2629,22 @@ LEVEL = Info
|
||||
;; Minio bucket lookup method defaults to auto mode; set it to `dns` for virtual host style or `path` for path style, only available when STORAGE_TYPE is `minio`
|
||||
;MINIO_BUCKET_LOOKUP_TYPE = auto
|
||||
|
||||
;[storage.azureblob]
|
||||
;STORAGE_TYPE = azureblob
|
||||
;;
|
||||
;; Azure Blob endpoint to connect only available when STORAGE_TYPE is `azureblob`,
|
||||
;; e.g. https://accountname.blob.core.windows.net or http://127.0.0.1:10000/devstoreaccount1
|
||||
;AZURE_BLOB_ENDPOINT =
|
||||
;;
|
||||
;; Azure Blob account name to connect only available when STORAGE_TYPE is `azureblob`
|
||||
;AZURE_BLOB_ACCOUNT_NAME =
|
||||
;;
|
||||
;; Azure Blob account key to connect only available when STORAGE_TYPE is `azureblob`
|
||||
;AZURE_BLOB_ACCOUNT_KEY =
|
||||
;;
|
||||
;; Azure Blob container to store the attachments only available when STORAGE_TYPE is `azureblob`
|
||||
;AZURE_BLOB_CONTAINER = gitea
|
||||
|
||||
;[proxy]
|
||||
;; Enable the proxy, all requests to external via HTTP will be affected
|
||||
;PROXY_ENABLED = false
|
||||
|
Reference in New Issue
Block a user