在静态网站

时间:2018-02-01 21:40:19

标签: amazon-web-services amazon-s3 amazon-cloudfront

我可以通过https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html上的亚马逊文档获得AWS签名版本4的查询参数,但我无法在具有查询参数的静态网站上进行GET。例如,如果a有一个存储区testbuckethttps://s3.amazonaws.com/testbucket/key?<QUERY_PARAMS>工作正常,但http://testbucket.s3-website-us-east-1.amazonaws.com/key?<QUERY_PARAMS>不起作用。最终我会使用Cloudfront地址来获取https,因为静态网站不支持开箱即用的https,但第一步是让它与静态网站一起使用。

我想让这个在静态网站上工作,所以我可以关注https://aws.amazon.com/blogs/compute/resize-images-on-the-fly-with-amazon-s3-aws-lambda-and-amazon-api-gateway/,这需要将404(和403)GET响应转发给另一个主机。该博客文章并未假设有人使用签名版本4查询参数,这就是让我失望的原因。

我的问题是:如何设置签名版本4查询参数以使用静态网站?

我已尝试将签名者的端点网址更改为http://testbucket.s3-website-us-east-1.amazonaws.com/key

1 个答案:

答案 0 :(得分:2)

AWS预签名签名仅适用于S3 API调用。针对s3.amazonaws.com执行的操作。

网站端点不支持API AWS身份验证。这就是为什么它不适合你的原因。

当您使用S3来托管使用预签名URL保护的文件时(例如),必须使用API​​端点而不是网站端点来提供文件。