微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 golang 上传签名网址:SignatureDoesNotMatch

如何解决从 golang 上传签名网址:SignatureDoesNotMatch

当我传递从 POST 返回的签名 URL 以上传文件时,此函数 http.NewRequest 中似乎有 URL 的编码(或解码?):

req,err = http.NewRequest(http.MethodPut,uploadResp.UploadURL,bytes.NewBuffer(json))
if err != nil {
    log.Fatal(err)
}
req.Header.Set("Content-Type","application/json; charset=utf-8")

这里是uploadResp.UploadURL,顺便说一句,我可以使用它通过curl成功上传文件

... .s3.amazonaws.com/test?AWSAccessKeyId=...&Signature=RDCEz7QLLtVPhUynLR69%2BzR9POc%3D&x-amz-security-token=...

但是当我运行 golang 代码时,我得到了:

...The request signature we calculated does not match the signature you provided.
<SignatureProvided>RDCEz7QLLtVPhUynLR69+zR9POc=</SignatureProvided>

有没有办法阻止 http.NewRequest 在 URL 中进行任何转换?
也许在服务器端工作:

put_url = s3.generate_presigned_url(
        'put_object',Params={
            'Bucket': bucketName,'Key': 'test',},ExpiresIn=300,HttpMethod='PUT'
    )

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。