2012-01-18 18 views
13

पर कस्टम हेडर मनमाने ढंग से नामकरण के साथ अमेज़ॅन एस 3 पर कस्टम हेडर रखना संभव है?अमेज़ॅन एस 3

उदाहरण के लिए, मैं एक CDN की ओर इशारा करते अमेज़न S3 के लिए मूल सर्वर के रूप में उपयोग कर रहा हूँ, और क्रम में CDN पर उन्नत कार्यक्षमता को सक्षम करने मैं एक कस्टम हेडर "एक्स-कुछ-कुछ" का उपयोग करने की आवश्यकता है ...

मुझे लगता है कि "x-amz-meta- (कुछ)" के साथ ऐसा करना संभव है, लेकिन कुछ सामान्य के बारे में "x- (कुछ) - (कुछ)" के बिना क्या है?

Amazon S3 custom headers

+0

आप इस तरह से उपसर्ग वाले शीर्षकों के साथ क्या पूरा नहीं कर सकते? – Kekoa

उत्तर

11

मुझे नहीं लगता कि यह उनकी current API के साथ संभव है है। वे प्रमुख हेडर को कवर करते हैं जिन्हें आपको कैशिंग और ब्राउज़र इंटरऑपरेबिलिटी के लिए जरूरी है।

मुझे लगता है कि वे केवल x-amz-meta- पहले से जुड़ा हुआ कस्टम हेडर देने में सुरक्षित किया जा रहा है, संभवतः उपयोगकर्ता चयनित हेडर के साथ टकरा जब वे भविष्य में उनके API अपडेट से रखने के लिए।

यदि आपको अपनी वस्तुओं से जुड़े कस्टम विशेषताओं की आवश्यकता है, तो अपने क्लाइंट एप्लिकेशन में x-amz-meta- को पार्स करने के लिए यह छोटा होना चाहिए।

आप नहीं सकते करते हैं केवल S3 के साथ:

+5

"ट्रिविअल" यदि आप क्लाइंट एप्लिकेशन को नियंत्रित करते हैं ... लेकिन अगर यह कुछ तीसरी पार्टी है, तो यह इतना छोटा नहीं है! – Jeff

+1

@ जेफ मुझे लगता है कि यदि आप सीधे एडब्ल्यूएस तक नहीं पहुंचते हैं तो आप जो कुछ भी उपयोग कर रहे हैं उसकी सीमाओं को देखते हैं। – Kekoa

+0

धन्यवाद, मैं सोच रहा था कि मैं अपने आप पर कस्टम हेडर क्यों सेट नहीं कर सका। 'X-amz-meta -'prefix ने वास्तव में यह किया (वास्तव में अमेज़ॅन द्वारा खराब रूप से दस्तावेज किया गया)। – Frederic

5

इस खूबसूरत लेख यह सब https://medium.com/@tom.cook/edge-lambda-cloudfront-custom-headers-3d134a2c18a2

tldr बताते हैं। आपको लैम्ब्डा @ एज के माध्यम से क्लाउडफ़्रंट और लैम्ब्डा का उपयोग करने की आवश्यकता है। यह लैम्ब्डा और क्लाउडफ्रंट के बीच एकीकरण है। यह आपको क्लाउडफ्रंट के भीतर लैम्ब्डास चलाने की अनुमति देता है। यह आपको अन्य चीजों के साथ हेडर बदलने की अनुमति देता है। तो यदि आप क्लाउडफ्रंट के माध्यम से अपने एस 3 तक पहुंच रहे हैं तो यह एक व्यवहार्य विकल्प हो सकता है।

0

मैं s3cmd tool का उपयोग करके इसे प्राप्त करने में सक्षम था।

सीडी/appropriatedirectory

#: मैं एक सिंक स्क्रिप्ट कि मैन्युअल एडब्ल्यूएस ग्राहक उपकरण पर --cache-control पैरामीटर का उपयोग कर मेरी स्थिर साइट सिंक करता है और फिर इसे रीसेट करता है और कुछ विशिष्ट फ़ाइलों के लिए कुछ अन्य हेडर कहते लिखा था वर्तमान साइट को हटाएं
एडब्ल्यूएस S3 rm S3: // yourbucket --recursive --exclude 'लॉग/*'

# अपलोड नई साइट, सभी फ़ाइलों के लिए 1 महीने के लिए कैश हेडर स्थापित करने
एडब्ल्यूएस S3 सिंक। S3: // yourbucket --exclude '.idea/*' --exclude '.git/*' --exclude '.gitignore' --cache नियंत्रण अधिकतम उम्र = 2592000

# के लिए कैश हेडर को ओवरराइड करता है कुछ फ़ाइल
अजगर/pathToS3cmd/s3cmd --add हेडर = संशोधित "कैश-नियंत्रण: नहीं-कैश, कोई दुकान, होगा दोबारा सत्यापित" S3: //yourbucket/somefile.html
अजगर/pathToS3cmd/s3cmd/s3cmd संशोधित --add-header = "समाप्त हो जाता है: 0" s3: //yourbucket/somefile.html
पायथन/pathToS3cmd/s3cmd/s3cmd संशोधित --add-header = "प्रज्ञा: नो-कैश" s3: // yourbucket /somefile.html

+0

इसमें लॉग, इंटेलिजे और गिट फाइलों को अनदेखा करने के लिए इसमें कुछ क्रूर है। मैंने इसे एक व्यावहारिक सिंक स्क्रिप्ट के एक आशावादी उपयोगी उदाहरण के रूप में छोड़ दिया। –