我遵循了关于这个问题的说明https://github.com/aws/aws-sdk-go/issues/467,其中清楚地记录了如何为PUT请求创建预签名的url。目标是预置url,这样我就可以安全地直接从浏览器上传图像
creds := credentials.NewStaticCredentials("key", "secret", "")
cfg := aws.NewConfig().WithRegion("us-west-2").WithCredentials(creds)
srv := s3.New(session.New(), cfg)
params := &s3.PutObjectInput{
Bucket: aws.String("my-bucket"),
Key: aws.String("/local/test/filename"),
}
req, _ := srv.PutObjectRequest(params)
url, err := req.Presign(15 * time.Hour)
if err != nil {
fmt.Println("error signing request", err)
}
fmt.Println("URL", url)
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
<AWSAccessKeyId>redacted</AWSAccessKeyId>
<StringToSign>redacted</StringToSign>
<SignatureProvided>redacted</SignatureProvided>
<StringToSignBytes>redacted</StringToSignBytes>
<CanonicalRequest>PUT
/local/test/filename
X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=redacted%2Fus-west-2%2Fs3%2F%20aws4_request&X-Amz-Date=20161129T012909Z&X-Amz-Expires=54000&X-Amz-SignedHeaders=host
host:redacted.s3-us-west-2.amazonaws.com
host
UNSIGNED-PAYLOAD</CanonicalRequest>
<CanonicalRequestBytes>redacted</CanonicalRequestBytes>
<RequestId>redacted</RequestId>
<HostId>redacted</HostId>
</Error>
我的存储桶策略配置不正确。我必须将我的密钥/机密与IAM策略进行交叉引用,并确保它们列在策略的“主体”部分中
https://aws.amazon.com/blogs/security/iam-policies-and-bucket-policies-and-acls-oh-my-controlling-access-to-S3-resources/
我试图上传一个图像使用预先签名的网址 我得到了一个类似的url https://s3.eu-west-1.amazonaws.com/bucket/folder/access.JPG?AWSAccessKeyId=xxxx 我已经尝试上传文件与内容类型图像/jpg,多部分/表单数据。 尝试生成没有文件类型和上传的网址。 尝试了放后法 但似乎什么都不管用 错误总是: 我们计算的请求签名与您提供的签名
我有一个播放应用程序需要上传文件到S3。我们正在使用scala和Java AWS SDK进行开发。 我有麻烦尝试上传文件,我不断得到403签名DoesnotMatch当使用预签名的URL。url是通过以下代码使用AWS Java SDK生成的:
标题说明一切。这是我的代码; 我使用节点强大的文件。 成功上传后,url变量返回s3 url,类似以下内容; 下面是我的参数 我错过了什么?
我试图上传图像/视频使用PHP/Javascript到AWS S3 这是我的PHP代码 这是我的Java脚本代码 所有这些功能工作伟大,我想即使在执行它给我文件上传成功消息too.but当我检查s3什么都没有。 即使在控制台中,它也会像下面一样生成预签名URL。但当我尝试单击它时,它会给我SignatureDesNotMatch错误。(请单击URL)。可能是什么错误。。? https://ibra
我使用WindowsPowerShell创建了一个弹性Beanstalk环境,并遵循以下部署文档将Django应用程序部署到弹性Beanstalk 我完成了以下步骤:使用Django的Python虚拟环境, 创建了django项目, 创建IAM用户我获得了访问密钥ID和机密访问密钥ID 失败此步骤环境并部署您的Django应用程序 当我尝试it询问访问密钥、秘密访问密钥和区域aws应用程序自动生成