[英]Does AWS CloudFront “origin shield” matter if using S3 bucket as Origin?
[英]AWS CloudFront returns http 307 when origin is S3 bucket
我已經用一些文件創建了 s3 存儲桶。 我使用該 S3 存儲桶作為源創建了 CloudFront 分配,並將狀態更改為已部署。
當我為任何文件卷曲 CloudFront 時,我得到:
<Error><Code>TemporaryRedirect</Code><Message>Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.</Message><Bucket>MY-BUCKET</Bucket><Endpoint>MY-BUCKET.s3-eu-west-1.amazonaws.com</Endpoint><RequestId>...</RequestId><HostId>...</HostId></Error>
當我為任何文件卷曲我的 S3 存儲桶時,我會得到該文件內容。
我做錯了什么? 如何強制 cloudfront 緩存文件,以便客戶端不需要直接從 S3 獲取數據?
Thx Matt Houser 從評論到我的第一篇文章!
當分發尚未完全准備好時,CloudFront 似乎緩存了我對文件的第一個請求(但當時它處於部署狀態,所以要小心!)。 我請求使緩存中的所有文件失效,這需要幾分鍾,但在失效完成后,所有文件都使用 CloudFront url 用 http 200 卷曲。
在 Michael-sqlbot 發表評論后,問題變得清晰起來:
所有存儲桶都有至少兩個 REST 端點主機名。 在 eu-west-1 中,它們是 example-bucket.s3-eu-west-1.amazonaws.com 和 example-bucket.s3.amazonaws.com。 第一個將在創建存儲桶時立即有效。 第二個——有時被稱為“全局端點”——這是 CloudFront 使用的一個——不會,除非存儲桶在 us-east-1 中。 在幾秒到幾分鍾的時間里,根據位置和其他因素而變化,它也可以在全球范圍內訪問。 在此之前,返回 307 重定向。 因此,桶還沒有准備好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.