2016-08-01 27 views
14

olduğunda http 307'yi döndürür Bazı dosyalar içeren s3 paketini oluşturdum. CloudFront dağıtımını o S3 paketiyle kaynak olarak oluşturdum ve durumu dağıtılmış olarak değiştirdim. Ben herhangi bir dosya için CloudFront kıvrılıp zamanAWS CloudFront, kaynak S3 grubu

alıyorum:

<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> 

Ben bu dosya içeriğini almak herhangi bir dosya için benim S3 kova kıvrılıp zaman.

Neyi yanlış yapıyorum? Müşterilerin S3'ten doğrudan veri almasına gerek kalmaması için dosyaları önbelleğe almak için nasıl cloudfront zorlanır?

+0

Dağıtılan iletiyi aldığınızda Curl'i hemen denediniz mi? – error2007s

+0

@ error2007s, 3 saatten daha uzun bir süre dağıtıldı, ancak ileti hala devam ediyor – user3231055

+0

Kutunuz hangi bölgede? CloudFront dağıtımınızda belirttiğiniz kova uç noktanız nedir? –

cevap

22

Thx Matt Houser ilk yazımda!

CloudFront, dağıtım tam olarak hazır olmadığında dosyalara ilk istekleri önbelleğe almış gibi görünüyor (ancak o anda dağıtılmış durumdaydı, dikkat edin!). Önbellekte olan tüm dosyalar için geçersizlik istedim, birkaç dakika sürdü, ancak geçersiz kılma tamamlandıktan sonra, CloudFront url kullanarak tüm dosyalar http 200 ile kesişti.

sorun Michael-sqlbot gelen açıklama sonrası belli oldu:

tüm kepçeler en az iki DİNLENME uç nokta hostnames var. Eu-west-1, 'da bunlar example-bucket.s3-eu-west-1.amazonaws.com ve example-bucket.s3.amazonaws.com şeklindedir. Birincisi, kepçe oluşturulduğunda geçerli olan geçerli olacaktır. İkincisi - bazen "küresel son nokta" olarak olarak adlandırılan - bir CloudFront kullanan - kova, biz-doğu-1 içinde değilse, olmaz. saniyelik bir süre zarfında dakikalara, konuma ve diğer faktörlere göre değişken olarak, küresel olarak da erişilebilir durumdadır. Bundan önce 307 yönlendirme döndürülür. Bu nedenle, kova hazır değildi.

+3

Aslında, tam olarak hazır olmayan * dağıtım * değildi. Hazır olmasaydı, işe yaramıyordu. [Hazırlanmayan * kepçe * idi] (http://docs.aws.amazon.com/AmazonS3/latest/dev/Redirects.html). Küresel son nokta DNS'nin çalışmasının yolu nedeniyle, kepçenin doğu-1 bölgesinde olmadığında, yeni bir kepçe ömrünün ilk birkaç dakikasında geçici yeniden yönlendirmeler normaldir, bazen biraz daha uzundur. CloudFront tarafından önbellekten sunulan yanıtlarda, gördüğünüz şeyin önbelleğe alındığını belirten bir "Yaş:" başlığı vardır. –

+0

@ Michael-sqlbot kepçe altında ne demek istemedin? Normalde kıvrılmış ve aynı anda bulutsuz. – user3231055

+1

Tüm paketlerin en az iki adet REST uç nokta anasistemi vardır. Eu-west-1'de bunlar example-bucket.s3-eu-west-1.amazonaws.com ve example-bucket.s3.amazonaws.com şeklindedir. Birincisi kova oluşturulduğunda imkansız olarak geçerli olacaktır. İkincisi - bazen "global son nokta" olarak anılır - ki bu da CloudFront'un kullandığı tek şey - kepçenin doğu-1 olması durumunda olmaz. Dakikalara ve dakikalara göre değişebilen, konuma ve diğer faktörlere göre değişen, küresel olarak da erişilebilir hale gelir. Bundan önce 307 yönlendirmesi döndürülür. Bu nedenle, kova hazır değildi. –

İlgili konular