AWS S3签名对象无法获取GET

时间:2018-01-17 15:06:41

标签: amazon-s3

我们正在努力使用签名对象在私人网站上显示内容。因此,使用私有S3存储桶然后生成签名网址似乎是一个很好的方法。但是当使用aws-cli我无法使用它时,请求使用wget,curl和我尝试过的任何浏览器都失败了。我在这里遗漏了什么,不应该签名的网址只能使用任何其他正常的网址。例如:

# aws s3 presign s3://bucket-name/2018/01/17/small.mp4
https://bucket-name.s3.amazonaws.com/2018/01/17/small.mp4?AWSAccessKeyId=KEYID&Signature=oeU2mpPRhOYFW0MdLcxqrgriaB8%3D&Expires=1516204869

# curl "https://bucket-name.s3.amazonaws.com/2018/01/17/small.mp4?AWSAccessKeyId=KEYID&Signature=doUHXL3RPQGh%2FTuevT3%2FGkjantI%3D&Expires=1516204809"
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidRequest</Code><Message>The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.</Message><RequestId>31A6192716C4A86D</RequestId><HostId>urrlQ/hz2exkKJ19BuZ7o5kZVQwJexQUb3UvZV7t65erm/inZfDqIt2vpPHxmZ69J1JFnQcfTPc=</HostId></Error>%

返回错误请求(400)。

1 个答案:

答案 0 :(得分:1)

问题是我在生成签名网址时没有设置区域。配置存储桶所在区域的aws-cli解决了问题。