Amazon S3重定向和Cloudfront

我试图使用对象在S3上设置301重定向,这里引用http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html。 我一直有一些问题,似乎无法弄清楚我做错了什么。

我得到的是一个空白页(0字节文件),就好像'网站重定向位置'元数据值没有设置一样。

我究竟做错了什么?

此外,这是否适用于AWS CloudFront?


我的S3控制台设置 S3控制台设置

情侣注意事项:

我有用于托管静态网站的设置。 我使用ssl / https与我自己的证书上传并设置在cloudfront发行版上。 除重定向对象之外,所有页面都可以工作。 我试过设置路由规则,但它们似乎在Cloudfront中不起作用。

我试图通过cloudfront url和s3 url访问重定向(https://s3.amazonaws.com/{bucket}/users/sign_in)


对于S3中的类似网站的功能,例如重定向,html错误消息和索引文档,您不能使用REST端点(例如s3.amazonaws.com),因为这些功能仅由网站端点提供(例如bucketname.s3-website-us-east-1.amazonaws.com)。

http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html

为了使行为在Cloudfront中可用,您需要配置Cloudfront以使用此端点,而不是通过控制台中的自动完成功能提供的REST端点。

为您的存储桶输入Amazon S3静态网站托管端点。 该值显示在Amazon S3控制台的“ 静态网站托管”下的“ 属性”页面中。

当您以此格式指定存储桶名称时,可以使用Amazon S3重定向和Amazon S3自定义错误文档。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html

请注意,Web端点不支持HTTPS,但即使客户端连接是HTTPS,您也可以将Cloudfront配置为使用HTTP从存储桶中获取数据。


有用的提示:在使用CloudFront进行故障排除和测试更改时,用户常常会因您做出更改以及CloudFront开始展示新行为之间的明显“延迟”而感到困惑。 在出现错误页面的情况下,CloudFront具有默认的5分钟错误缓存最小TTL ,可防止其将失败页面的请求重新发送到源,并且这是与缓存行为中设置的最小/默认/最大TTL不同的计时器。 特别是在进行测试时,您可能希望禁用这些定时器,并使用我在答案中提供的有关明显的Amazon CloudFront延迟问题中提供的步骤,强制每次请求返回错误的页面进行重试。


我遇到了与重定向失败和零长度文件下载相同的问题,但未使用Cloudfront。

在我的情况下,根本原因是我的DNS CNAME记录指向REST端点(static.righto.com.s3-us-west-2.amazonaws.com),而不是网站端点(static.righto.com.s3- 网站 -us-west-2.amazonaws.com)。 更新CNAME记录修复了我的重定向。

此问题的另一个症状是缺少显示XML错误页面的页面,而不是HTML错误页面。

本文档解释了网站端点与REST端点之间的区别。

链接地址: http://www.djcxy.com/p/68465.html

上一篇: Amazon S3 Redirect and Cloudfront

下一篇: AWS Nodejs official SDK support for getSignedUrl with CloudFront & RTMP