diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-03-28 23:10:24 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-28 11:10:24 -0400 |
commit | 5727056ea109eb04ee535b981349cdfb44df9fae (patch) | |
tree | af2b96f7b7871dd3d07169642b6234369c032632 /cmd | |
parent | 6a0ef71984b9246fc1bb378caaa614f3dedaa9e9 (diff) | |
download | gitea-5727056ea109eb04ee535b981349cdfb44df9fae.tar.gz gitea-5727056ea109eb04ee535b981349cdfb44df9fae.zip |
Make minio package support legacy MD5 checksum (#23768)
A feedback from discord:
https://discord.com/channels/322538954119184384/561007778139734027/1090185427115319386
Some storages like:
* https://developers.cloudflare.com/r2/api/s3/api/
* https://www.backblaze.com/b2/docs/s3_compatible_api.html
They do not support "x-amz-checksum-algorithm" header
But minio recently uses that header with CRC32C by default. So we have
to tell minio to use legacy MD5 checksum.
I guess this needs to be backported because IIRC we 1.19 and 1.20 are
using similar minio package.
The minio package code for SendContentMD5 looks like this:
<details>
<img width="755" alt="image"
src="https://user-images.githubusercontent.com/2114189/228186768-4f2f6f67-62b9-4aee-9251-5af714ad9674.png">
</details>
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/migrate_storage.go | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/cmd/migrate_storage.go b/cmd/migrate_storage.go index dfa7212e5b..9798913705 100644 --- a/cmd/migrate_storage.go +++ b/cmd/migrate_storage.go @@ -72,12 +72,21 @@ var CmdMigrateStorage = cli.Command{ cli.StringFlag{ Name: "minio-base-path", Value: "", - Usage: "Minio storage basepath on the bucket", + Usage: "Minio storage base path on the bucket", }, cli.BoolFlag{ Name: "minio-use-ssl", Usage: "Enable SSL for minio", }, + cli.BoolFlag{ + Name: "minio-insecure-skip-verify", + Usage: "Skip SSL verification", + }, + cli.StringFlag{ + Name: "minio-checksum-algorithm", + Value: "", + Usage: "Minio checksum algorithm (default/md5)", + }, }, } @@ -168,13 +177,15 @@ func runMigrateStorage(ctx *cli.Context) error { 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"), + 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")) |