2010-08-04 18 views
8

जितना आसान लगता है, यह एक असाधारण जटिल कार्य की तरह लगता है।आप एस 3 पर एक बाल्टी में फ़ोल्डर का नाम कैसे बदलते हैं?

+0

@ जॉन, क्या हुआ अगर आपने कुछ भी संपादित किया? – Trip

+0

मुझे विंडोज़ कामों के लिए क्लाउडबेरी मिली। लेकिन मुझे खिड़कियों से नफरत है। किसी को मैक विकल्प पता है? – Trip

+0

मेरे पास एक स्क्रिप्ट है जो यह करेगी - मुझे ई-मेल करें (लांगटाइलविडियो डॉट कॉम पर ज़ैच) और मैं इसे आगे बढ़ाऊंगा। –

उत्तर

11

यदि आप aws-s3 मणि का उपयोग कर रहे हैं, तो आप निम्न कोड को अपने एस 3 में बहुत कुछ करना चाहते हैं, यदि आप aws-s3 मणि का उपयोग कर रहे हैं, तो निम्न कोड बाल्टी BUCKET_NAME में OLD_FOLDER_NAME को NEW_FOLDER_NAME में फ़ोल्डर का नाम बदल देगा:

bsize = OLD_FOLDER_NAME.size 
bucket = AWS::S3::Bucket.find(BUCKET_NAME) 
bucket.objects({:prefix=>OLD_FOLDER_NAME}).each do |o| 
    AWS::S3::S3Object.rename(o.key, NEW_FOLDER_NAME + o.key[bsize..-1], BUCKET_NAME) 
end 

यही है। फ़ोल्डर्स असली ऑब्जेक्ट्स नहीं हैं, इसलिए आपको बस इतना करना है कि उन सभी ऑब्जेक्ट्स का नाम बदलें जो नए पथ के उस विशिष्ट पथ में समाप्त होते हैं। परिणामस्वरूप आभासी फ़ोल्डर का नाम बदल दिया जाएगा।

+0

यह फ़ोल्डर का नाम बदलता है, हालांकि, यदि फ़ोल्डर की सामग्री सार्वजनिक थी, तो नाम के दौरान उन अनुमतियों को खो जाना प्रतीत होता है। – jpwynn

+0

ने नाम बदलने के लिए चौथे पैरामीटर के रूप में स्पष्ट अनुमति को जोड़ा है() अनुमतियां सेट करता है: access =>: public_read हालांकि नाम के दौरान अनुमतियों को संरक्षित करने के लिए शायद कुछ तरीका है – jpwynn

1

बाल्टीएक्सप्लोरर का उपयोग करें! ये शानदार एप है! GUI

+0

कोई ईमानदारी से, मैं अभी भी विचारों के लिए खुला हूं, लेकिन यह मुझे मिला सबसे अच्छा विकल्प था। – Trip

+0

मैं इस बात से सहमत हूं कि इस समाधान के लिए जावा 7 को स्थापित करने की आवश्यकता है, जो कि फ़ोल्डर का नाम बदलने के लिए बहुत सारे सिस्टम-स्तरीय परिवर्तन को पेश कर सकता है। बहुत बुरा वे जावा निर्भरताओं के बड़े सिरदर्द के बिना इसे 'असली' ऐप के रूप में फिर से लिखते नहीं हैं। – jpwynn

8

AWS Command Line Interface जैसा लगता है कि इस तरह की चीजें करने का नया तरीका है। यह का उपयोग करना, आप इस तरह एक फ़ोल्डर का नाम बदलें कर सकते हैं:

aws s3 mv --recursive s3://bucketname/oldfoldername s3://bucketname/newfoldername 

सुनिश्चित करें और --dryrun विकल्प के साथ शुरू यह आप क्या सोचते हैं यह करने के लिए जा रहा है क्या करेंगे सुनिश्चित करने के लिए।

1

यदि आप एस 3 प्रबंधन कंसोल का उपयोग करते हैं, तो आप कट और पेस्ट कर सकते हैं। अपने इच्छित फ़ोल्डर में जाएं, Ctrl + A पर क्लिक करें, फिर कार्रवाइयां> कट पर क्लिक करें। अपना नया फ़ोल्डर बनाएं और क्रियाएं> पेस्ट पर क्लिक करें।

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