diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2023-06-14 11:42:38 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-14 11:42:38 +0800 |
commit | d6dd6d641b593c54fe1a1041c153111ce81dbc20 (patch) | |
tree | f9e7959356124bd830ce0b9e9e51c1373aa71932 /cmd/migrate_storage.go | |
parent | dc0a7168f1450d45164fde63c56f04a1e5bbb949 (diff) | |
download | gitea-d6dd6d641b593c54fe1a1041c153111ce81dbc20.tar.gz gitea-d6dd6d641b593c54fe1a1041c153111ce81dbc20.zip |
Fix all possible setting error related storages and added some tests (#23911)
Follow up #22405
Fix #20703
This PR rewrites storage configuration read sequences with some breaks
and tests. It becomes more strict than before and also fixed some
inherit problems.
- Move storage's MinioConfig struct into setting, so after the
configuration loading, the values will be stored into the struct but not
still on some section.
- All storages configurations should be stored on one section,
configuration items cannot be overrided by multiple sections. The
prioioty of configuration is `[attachment]` > `[storage.attachments]` |
`[storage.customized]` > `[storage]` > `default`
- For extra override configuration items, currently are `SERVE_DIRECT`,
`MINIO_BASE_PATH`, `MINIO_BUCKET`, which could be configured in another
section. The prioioty of the override configuration is `[attachment]` >
`[storage.attachments]` > `default`.
- Add more tests for storages configurations.
- Update the storage documentations.
---------
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'cmd/migrate_storage.go')
-rw-r--r-- | cmd/migrate_storage.go | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/cmd/migrate_storage.go b/cmd/migrate_storage.go index 291e7695b5..511db6cbf7 100644 --- a/cmd/migrate_storage.go +++ b/cmd/migrate_storage.go @@ -179,7 +179,7 @@ func runMigrateStorage(ctx *cli.Context) error { switch strings.ToLower(ctx.String("storage")) { case "": fallthrough - case string(storage.LocalStorageType): + case string(setting.LocalStorageType): p := ctx.String("path") if p == "" { log.Fatal("Path must be given when storage is loal") @@ -187,22 +187,24 @@ func runMigrateStorage(ctx *cli.Context) error { } dstStorage, err = storage.NewLocalStorage( stdCtx, - storage.LocalStorageConfig{ + &setting.Storage{ Path: p, }) - case string(storage.MinioStorageType): + case string(setting.MinioStorageType): dstStorage, err = storage.NewMinioStorage( stdCtx, - storage.MinioStorageConfig{ - Endpoint: ctx.String("minio-endpoint"), - AccessKeyID: ctx.String("minio-access-key-id"), - SecretAccessKey: ctx.String("minio-secret-access-key"), - Bucket: ctx.String("minio-bucket"), - Location: ctx.String("minio-location"), - BasePath: ctx.String("minio-base-path"), - UseSSL: ctx.Bool("minio-use-ssl"), - InsecureSkipVerify: ctx.Bool("minio-insecure-skip-verify"), - ChecksumAlgorithm: ctx.String("minio-checksum-algorithm"), + &setting.Storage{ + MinioConfig: setting.MinioStorageConfig{ + Endpoint: ctx.String("minio-endpoint"), + AccessKeyID: ctx.String("minio-access-key-id"), + SecretAccessKey: ctx.String("minio-secret-access-key"), + Bucket: ctx.String("minio-bucket"), + Location: ctx.String("minio-location"), + BasePath: ctx.String("minio-base-path"), + UseSSL: ctx.Bool("minio-use-ssl"), + InsecureSkipVerify: ctx.Bool("minio-insecure-skip-verify"), + ChecksumAlgorithm: ctx.String("minio-checksum-algorithm"), + }, }) default: return fmt.Errorf("unsupported storage type: %s", ctx.String("storage")) |