写在开始
因为要考虑服务器的容量,所以我把我现在用的Gitea接入了Backblaze B2,因为价格非常低,1T的容量用一年都不到450人民币。
问题描述
但是接上之后就发现问题了,传个文件弹失败。看Gitea的日志发现
2023/08/29 10:14:15 ...lfs/content_store.go:58:Put() [E] [64edfd37-2] Whilst putting LFS OID[cf407ee1de9329a2f2d899a6f6b5b195bb09418afd0510a9430c548895c691cb]: Failed to copy to tmpPath: cf/40/7ee1de9329a2f2d899a6f6b5b195bb09418afd0510a9430c548895c691cb Error: Unsupported header 'x-amz-checksum-algorithm' received for this API call.
2023/08/29 10:14:15 ...rvices/lfs/server.go:323:func1() [E] [64edfd37-2] Error putting LFS MetaObject [cf407ee1de9329a2f2d899a6f6b5b195bb09418afd0510a9430c548895c691cb] into content store. Error: Unsupported header 'x-amz-checksum-algorithm' received for this API call.
2023/08/29 10:14:15 ...rvices/lfs/server.go:336:UploadHandler() [E] [64edfd37-2] Error whilst uploadOrVerify LFS OID[cf407ee1de9329a2f2d899a6f6b5b195bb09418afd0510a9430c548895c691cb]: Unsupported header 'x-amz-checksum-algorithm' received for this API call.
说是不兼容一个头,上网上搜了搜发现是minio客户端和Backblaze B2的S3 API不完全兼容导致的。
官网有说,
Requests that include the x-amz-sdk-checksum-algorithm
HTTP header (These requests are rejected with HTTP status 400.)
还有其他的一个项目里也用到了minio的客户端也有人发过issue
解决方案
本以为这操作要凉凉的时候,偶然翻了一下Gitea官方的app.ini
,发现了这么一个配置项
;; Minio checksum algorithm: default (for MinIO or AWS S3) or md5 (for Cloudflare or Backblaze)
;MINIO_CHECKSUM_ALGORITHM = default
他说要是用Cloudflare或者Backblaze的话把这一项改成md5。我就照着改了重启,就发现他能用了。
写在最后
本来没想到还有这么个问题来着,最开始传了一个文件试了试来着,结果真到用的时候出问题了。
本来以为凉凉的结果随便翻翻又翻到了解决方案。
真的是峰回路转给我玩蹦极啊( ̄ε(# ̄)