fix(upload): 修复POST Object签名错误,StringToSign应对原始policy做SHA1而非Base64编码后的

This commit is contained in:
zpc 2026-02-20 23:43:04 +08:00
parent 608fbe714f
commit 66df292628

View File

@ -73,9 +73,9 @@ public class UploadConfigService : IUploadConfigService
var policy = GeneratePostPolicy(objectKey, setting.AccessKeyId!, keyTime);
var policyBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(policy));
// 生成签名: SignKey -> StringToSign -> Signature
// 生成签名: SignKey -> StringToSign(SHA1 of raw policy) -> Signature
var signKey = HmacSha1(setting.AccessKeySecret!, keyTime);
var stringToSign = Sha1Hash(policyBase64);
var stringToSign = Sha1Hash(policy);
var signature = HmacSha1(signKey, stringToSign);
_logger.LogInformation("生成POST Object签名成功: {ObjectKey}", objectKey);