s3cmd

2012-06-08 4 views
15

का उपयोग कर अमेज़ॅन एस 3 फ़ाइल पर मेटाडेटा सेट करने का प्रयास कर रहा है मेरे पास अमेज़ॅन एस 3 पर एक फ़ाइल है जिसमें प्रत्यय ".bin.gz" है। मैं चाहता हूं कि वेब ब्राउज़र इसे एक gzipped HTML फ़ाइल के रूप में पेश करें। इसलिए, मैं अमेज़ॅन एस 3 वेब कंसोल (https://console.aws.amazon.com/s3/home) में जा सकता हूं और फ़ाइल पर नेविगेट कर सकता हूं और इसे चुन सकता हूं। वहां, गुणों के तहत, मैं मेटाडेटा टैब पर जा सकता हूं और निम्नलिखित निर्देश जोड़ सकता हूं:s3cmd

Content-Type: text/html 
Content-Encoding: gzip 

यह अपेक्षा के अनुसार काम करता है। यह आसान हिस्सा है।

अब, मैं सैकड़ों (या संभवतः लाखों) फ़ाइलों के साथ वही काम करना चाहूंगा जब वे एस 3 पर रखे जाएं।

मैंने --add-header विकल्प के साथ s3cmd का उपयोग करने का प्रयास किया है, हालांकि जब मैं सामग्री-प्रकार सेट करने का प्रयास करता हूं तो मुझे एक हस्ताक्षर त्रुटि देता है। इसके अलावा, मुझे पूरा यकीन है कि ऐसा करने से केवल पीयूटी ऑपरेशन के समय भेजे गए शीर्षकों को प्रभावित किया जाएगा, न कि मेटाडेटा जो दस्तावेज़ के साथ संग्रहीत है।

तो, मैं इसे करने के लिए एक तरीका ढूंढ रहा हूं, आदर्श रूप से s3cmd के साथ। यदि यह संभव नहीं है, तो मैं सराहना करता हूं कि कोई व्यक्ति पाइथन लाइब्रेरी का सुझाव दे सकता है जो एस 3 पर फ़ाइल में मेटाडेटा लगाने में सक्षम है।

इसे कंसोल में मैन्युअल रूप से सेट किए बिना ऐसा करने का एक तरीका होना चाहिए।

उत्तर

22

MIME प्रकार (जो बाद में अनुरोधों पर Content-Type हेडर के रूप में भेजा जाएगा स्थापित करने के लिए उपयोग -m:। त्वरित जवाब के लिए

s3cmd -m text/html --add-header='Content-Encoding: gzip' put [files] s3://... 
+1

धन्यवाद मैंने कोशिश की है कि और सामग्री प्रकार के अपलोड की गई फ़ाइल के रूप में बनी "एप्लिकेशन/ऑक्टेट-स्ट्रीम" – chaimp

+1

समझ गया, धन्यवाद! मुझे बस मेरी एस 3 कॉन्फ़िगरेशन फ़ाइल में 'अनुमान_माइम_टाइप = गलत' बदलने की आवश्यकता है – chaimp

+0

@jeffp हाँ मुझे लगता है कि मेरे पास पहले से ही 'गलत' सेटिंग है। आप शायद एक निर्दिष्ट कर सकते हैं यदि आप उस सेटिंग को डिफ़ॉल्ट रूप से छोड़ना चाहते हैं तो हर बार जब आप कमांड चलाते हैं तो MIME प्रकार का अनुमान लगाने के लिए ध्वज। – Paulpro