2016-08-01 6 views
14

मैंने कुछ फ़ाइलों के साथ एस 3 बाल्टी बनाई है। मैंने क्लाउडफ्रंट वितरण को उस एस 3 बाल्टी के साथ उत्पत्ति के रूप में बनाया और इसे तैनात करने के लिए स्थिति बदल दी।एडब्ल्यूएस क्लाउडफ्रंट http 307 लौटाता है जब मूल एस 3 बाल्टी

जब मैं किसी भी फाइल के लिए 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 बाल्टी कर्ल।

मैं क्या गलत कर रहा हूं? फ़ाइलों को कैश करने के लिए क्लाउडफ़्रंट को कैसे मजबूर करें ताकि ग्राहकों को सीधे S3 से डेटा प्राप्त करने की आवश्यकता न हो?

+0

क्या आपने तैनात संदेश प्राप्त करने पर तुरंत कर्ल को आजमाया था? – error2007s

+0

@ error2007s इसे 3 घंटे से अधिक तैनात किया गया है, लेकिन संदेश अभी भी – user3231055

+0

बनी हुई है जिसमें आपकी बाल्टी है? आपके बाल्टी एंडपॉइंट क्या है जिसे आपने अपने क्लाउडफ्रंट वितरण में निर्दिष्ट किया है? –

उत्तर

22

Thx Matt Houser टिप्पणी से मेरी पहली पोस्ट पर!

ऐसा लगता है कि क्लाउडफ्रंट ने फाइलों के लिए अपने पहले अनुरोधों को कैश किया जब वितरण पूरी तरह से तैयार नहीं था (लेकिन उस समय वह तैनात राज्य में था, इसलिए सावधान रहें!)। मैंने कैश में मौजूद सभी फ़ाइलों को अमान्यता का अनुरोध किया, इसमें कुछ मिनट लग गए, लेकिन अमान्यता के बाद, सभी फ़ाइलों को क्लाउडफ्रंट यूआरएल का उपयोग करके http 200 के साथ घुमाया गया।

समस्या माइकल-sqlbot से टिप्पणी के बाद स्पष्ट हो गया:

सभी बाल्टी कम से कम दो REST एंडपॉइंट होस्ट नामों की है। ई-वेस्ट -1, में वे उदाहरण हैं- bucket.s3-eu-west-1.amazonaws.com और उदाहरण- bucket.s3.amazonaws.com। बाल्टी बनने पर पहला वाला मान्य होगा। दूसरा - कभी-कभी को "वैश्विक अंतराल" के रूप में संदर्भित किया जाता है - जो क्लाउडफ्रंट का उपयोग करता है - तब तक नहीं होगा जब तक कि बाल्टी हमारे-पूर्व-1 में न हो। मिनटों की अवधि के दौरान, स्थान और अन्य कारकों द्वारा परिवर्तनीय, यह वैश्विक रूप से सुलभ हो जाता है। इससे पहले, 307 रीडायरेक्ट लौटा दिया गया है। इसलिए, बाल्टी तैयार नहीं थी।

+3

असल में, यह * वितरण * नहीं था जो पूरी तरह से तैयार नहीं था। अगर यह तैयार नहीं होता है, तो यह काम नहीं कर रहा होता। [यह * बाल्टी * था जो तैयार नहीं था] (http://docs.aws.amazon.com/AmazonS3/latest/dev/Redirects.html)। ग्लोबल एंडपॉइंट DNS काम करता है, जिस तरह से बाल्टी हमारे पूर्व-1 क्षेत्र में नहीं है, जब कभी-कभी नई बाल्टी के जीवन के पहले कुछ मिनटों के लिए अस्थायी रीडायरेक्ट सामान्य होते हैं। क्लाउडफ्रंट द्वारा कैश से परोसे गए प्रतिक्रियाओं में 'आयु:' हेडर भी होता है, जो सुझाव देता कि आप जो देख रहे थे उसे कैश किया गया था। –

+0

@ माइकल-एसक्लबॉट बाल्टी के नीचे आपका क्या मतलब है तैयार नहीं था? यह सामान्य रूप से घुमाया गया था और क्लाउडफ्रंट एक ही समय में नहीं था। – user3231055

+1

सभी बाल्टीओं में कम से कम दो REST एंडपॉइंट होस्टनाम हैं। यू-वेस्ट -1 में, वे उदाहरण हैं- bucket.s3-eu-west-1.amazonaws.com और example-bucket.s3.amazonaws.com। बाल्टी बनने पर पहला व्यक्ति तत्काल मान्य होगा। दूसरा - कभी-कभी "ग्लोबल एंडपॉइंट" के रूप में जाना जाता है - जो क्लाउडफ्रंट का उपयोग करता है - तब तक नहीं होगा जब तक कि बाल्टी हमारे-पूर्व-1 में न हो। सेकंड्स से मिनटों की अवधि में, स्थान और अन्य कारकों द्वारा परिवर्तनीय, यह वैश्विक रूप से एक्सेसिबल भी बन जाता है। इससे पहले, 307 रीडायरेक्ट वापस कर दिया गया है। इसलिए, बाल्टी तैयार नहीं थी। जानकारी के लिए –

संबंधित मुद्दे