अब इसे पूरा करने के 3 तरीके हैं: AWS कंसोल के माध्यम से, कमांड लाइन के माध्यम से , या s3cmd कमांड लाइन टूल के माध्यम से ।
AWS कंसोल निर्देश
यह अब अनुशंसित समाधान है। यह सीधे आगे है, लेकिन इसमें कुछ समय लग सकता है।
- AWS प्रबंधन कंसोल में लॉग इन करें
- S3 बाल्टी में जाएं
- मार्ग से सभी फ़ाइलों का चयन करें
- मेनू से "अधिक" चुनें
- "मेटाडेटा बदलें" चुनें
- "की" फ़ील्ड में, ड्रॉप-डाउन मेनू से "कैश-कंट्रोल" चुनें अधिकतम आयु = 604800Enter (7 दिन) मान के लिए
- "सहेजें" बटन दबाएं
( @biplob को धन्यवाद - कृपया उसे नीचे कुछ प्यार दें )
एडब्ल्यूएस कमांड लाइन समाधान
मूल रूप से, जब मैंने इस बकेट नीतियों का निर्माण किया था, तो कोई रास्ता नहीं था, इसलिए मुझे लगा कि एव्स-क्ली का उपयोग करके इसे कैसे करना है, और यह बहुत चालाक है। जब शोध में मुझे जंगली में कोई उदाहरण नहीं मिला, तो मैंने सोचा कि मैं अपने कुछ समाधानों को उन लोगों की मदद करने के लिए पोस्ट करूंगा।
नोट: डिफ़ॉल्ट रूप से, aws-cli केवल एक फ़ाइल के वर्तमान मेटाडेटा की प्रतिलिपि बनाता है, EVEN IF आप विशेष रूप से नए मेटाडाटा।
कमांड लाइन पर निर्दिष्ट मेटाडेटा का उपयोग करने के लिए, आपको '--metadata-directive REPLACE' ध्वज जोड़ना होगा। यहाँ कुछ उदाहरण हैं।
एक फाइल के लिए
aws s3 cp s3://mybucket/file.txt s3://mybucket/file.txt --metadata-directive REPLACE \
--expires 2034-01-01T00:00:00Z --acl public-read --cache-control max-age=2592000,public
एक पूरी बाल्टी के लिए (नोट - व्यापक ध्वज):
aws s3 cp s3://mybucket/ s3://mybucket/ --recursive --metadata-directive REPLACE \
--expires 2034-01-01T00:00:00Z --acl public-read --cache-control max-age=2592000,public
एक छोटी गच्चा मुझे मिली, यदि आप केवल इसे एक विशिष्ट फ़ाइल प्रकार पर लागू करना चाहते हैं, तो आपको सभी फ़ाइलों को बाहर करने की आवश्यकता है, फिर उन लोगों को शामिल करें जिन्हें आप चाहते हैं।
केवल jpgs और pngs:
aws s3 cp s3://mybucket/ s3://mybucket/ --exclude "*" --include "*.jpg" --include "*.png" \
--recursive --metadata-directive REPLACE --expires 2034-01-01T00:00:00Z --acl public-read \
--cache-control max-age=2592000,public
यदि आपको अधिक जानकारी की आवश्यकता है, तो यहां मैनुअल के कुछ लिंक दिए गए हैं:
ज्ञात पहलु:
"Unknown options: --metadata-directive, REPLACE"
यह आउट ऑफ डेट awscli के कारण हो सकता है - नीचे @ eliotRosewater का उत्तर देखें
S3cmd टूल
S3cmd "Amazon S3 और CloudFront सेवाओं के प्रबंधन के लिए कमांड लाइन टूल" है। जबकि इस समाधान के लिए एक जिट पुल की आवश्यकता होती है यह एक सरल और अधिक व्यापक समाधान हो सकता है।
पूर्ण निर्देशों के लिए, @ ashishyadaveee11 का पोस्ट नीचे देखें
आशा करता हूँ की ये काम करेगा!