From 62e6c9bc6c7a94a02a263b40e78a4563788e7bc3 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 18 Aug 2020 12:23:45 +0800 Subject: Add a storage layer for attachments (#11387) * Add a storage layer for attachments * Fix some bug * fix test * Fix copyright head and lint * Fix bug * Add setting for minio and flags for migrate-storage * Add documents * fix lint * Add test for minio store type on attachments * fix test * fix test * Apply suggestions from code review Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> * Add warning when storage migrated successfully * Fix drone * fix test * rebase * Fix test * display the error on console * Move minio test to amd64 since minio docker don't support arm64 * refactor the codes * add trace * Fix test * remove log on xorm * Fi download bug * Add a storage layer for attachments * Add setting for minio and flags for migrate-storage * fix lint * Add test for minio store type on attachments * Apply suggestions from code review Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> * Fix drone * fix test * Fix test * display the error on console * Move minio test to amd64 since minio docker don't support arm64 * refactor the codes * add trace * Fix test * Add URL function to serve attachments directly from S3/Minio * Add ability to enable/disable redirection in attachment configuration * Fix typo * Add a storage layer for attachments * Add setting for minio and flags for migrate-storage * fix lint * Add test for minio store type on attachments * Apply suggestions from code review Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> * Fix drone * fix test * Fix test * display the error on console * Move minio test to amd64 since minio docker don't support arm64 * don't change unrelated files * Fix lint * Fix build * update go.mod and go.sum * Use github.com/minio/minio-go/v6 * Remove unused function * Upgrade minio to v7 and some other improvements * fix lint * Fix go mod Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> Co-authored-by: Tyler --- custom/conf/app.example.ini | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'custom') diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini index a0aed626ed..bbd3b5bc36 100644 --- a/custom/conf/app.example.ini +++ b/custom/conf/app.example.ini @@ -749,14 +749,35 @@ ENABLE_FEDERATED_AVATAR = false [attachment] ; Whether attachments are enabled. Defaults to `true` ENABLED = true -; Path for attachments. Defaults to `data/attachments` -PATH = data/attachments + ; One or more allowed types, e.g. "image/jpeg|image/png". Use "*/*" for all types. ALLOWED_TYPES = image/jpeg|image/png|application/zip|application/gzip ; Max size of each file. Defaults to 4MB MAX_SIZE = 4 ; Max number of files per upload. Defaults to 5 MAX_FILES = 5 +; Storage type for attachments, `local` for local disk or `minio` for s3 compatible +; object storage service, default is `local`. +STORE_TYPE = local +; Allows the storage driver to redirect to authenticated URLs to serve files directly +; Currently, only `minio` is supported. +SERVE_DIRECT = false +; Path for attachments. Defaults to `data/attachments` only available when STORE_TYPE is `local` +PATH = data/attachments +; Minio endpoint to connect only available when STORE_TYPE is `minio` +MINIO_ENDPOINT = localhost:9000 +; Minio accessKeyID to connect only available when STORE_TYPE is `minio` +MINIO_ACCESS_KEY_ID = +; Minio secretAccessKey to connect only available when STORE_TYPE is `minio` +MINIO_SECRET_ACCESS_KEY = +; Minio bucket to store the attachments only available when STORE_TYPE is `minio` +MINIO_BUCKET = gitea +; Minio location to create bucket only available when STORE_TYPE is `minio` +MINIO_LOCATION = us-east-1 +; Minio base path on the bucket only available when STORE_TYPE is `minio` +MINIO_BASE_PATH = attachments/ +; Minio enabled ssl only available when STORE_TYPE is `minio` +MINIO_USE_SSL = false [time] ; Specifies the format for fully outputted dates. Defaults to RFC1123 -- cgit v1.2.3