可以向 aws s3 presign url 发送 PUT 请求吗?

Possible to send a PUT request to aws s3 presign url?

我一直在尝试使用前缀 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>

预签名 URL 是使用此命令生成的

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

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

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

是否有一些研究发现人们在请求前缀 URL 时谈论在 header 中添加 'Content_Type',但 aws cli 没有要包含的标志。

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

AWS CLI 尚不支持预签名 PUT URL。不过,您可以使用 Python Boto3 轻松生成一个。文档是 here。如果你想要一个预签名的 PUT,你只需要让 ClientMethod 参数为 put_object.