如何解决从 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 举报,一经查实,本站将立刻删除。