在静态网站上使用 AWS 签名版本 4 查询参数

Query parameters with AWS signature version 4 on static website

我可以按照 https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html 上的亚马逊文档获取 AWS 签名版本 4 的查询参数,但我无法使用查询参数在静态网站上执行 GET。例如,如果有一个桶 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 响应转发给另一台主机。该博客 post 不假设一个人正在使用签名版本 4 查询参数,这让我感到困惑。

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

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

AWS 预签名仅适用于 S3 API 调用。那些被处决的人 s3.amazonaws.com.

网站端点不支持API AWS 身份验证。这就是它对您不起作用的原因。

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