首页 > 解决方案 > 可以向 aws s3 presign url 发送 PUT 请求吗?

问题描述

我一直在尝试使用 presign URL 将文件放入我的私有 S3 存储桶中。但我一直收到此错误消息

<Code>SignatureDoesNotMatch</Code> <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>

presign URL 是使用此命令生成的

aws s3 presign s3://<bucket-name>/<file-name> --expires-in 300

但是当我做一个 curl PUT 请求时,发生了错误

curl -T "<file-name>" "<Generated presign url>"

是否有一些研究看到人们在请求签名 URL 时谈论在标头中添加“Content_Type”,但 aws cli 没有包含该标志。

是否可以通过 aws cli 发出请求?

标签: amazon-web-servicesamazon-s3aws-clipre-signed-url

解决方案


AWS CLI 尚不支持预签名的 PUT URL。不过,您可以使用 Python Boto3 轻松生成一个。文档在这里。如果你想要一个预签名的 PUT,你只需要让ClientMethodparam be put_object


推荐阅读