मुझे एक अमेज़ॅन एस 3 बाल्टी में '/ old/dir /' से '/ new/dir /' से सभी चाबियाँ कॉपी करने की आवश्यकता है। मैं इस स्क्रिप्ट (त्वरित हैक) के साथ आया था: अब यह काम कर रहा है के लिएबोटो के साथ एक अमेज़ॅन एस 3 बाल्टी में सभी फ़ाइलों को एक निर्देशिका से दूसरी निर्देशिका में कुशलता से कॉपी करने के लिए कैसे करें?
import boto
s3 = boto.connect_s3()
thebucket = s3.get_bucket("bucketname")
keys = thebucket.list('/old/dir')
for k in keys:
newkeyname = '/new/dir' + k.name.partition('/old/dir')[2]
print 'new key name:', newkeyname
thebucket.copy_key(newkeyname, k.bucket.name, k.name)
लेकिन क्या मैं सिर्फ माउस के साथ/अतीत नकल द्वारा चित्रमय प्रबंधन कंसोल में मैन्युअल रूप से कर सकते हैं की तुलना में काफी धीमी है। बहुत निराशाजनक और प्रतिलिपि बनाने के लिए बहुत सी कुंजी हैं ...
क्या आपको कोई तेज विधि पता है? धन्यवाद।
संपादित करें: शायद मैं समवर्ती प्रति प्रक्रियाओं के साथ ऐसा कर सकता हूं। मैं बोटो कॉपी कुंजी विधियों से वास्तव में परिचित नहीं हूं और मैं कितनी समवर्ती प्रक्रियाओं को अमेज़ॅन को भेज सकता हूं।
संपादित 2: मैं वर्तमान में पाइथन मल्टीप्रोसेसिंग सीख रहा हूं। चलो देखते हैं कि मैं एक साथ 50 प्रतिलिपि संचालन भेज सकता हूं ...
संपादित करें 3: मैंने पाइथन मल्टीप्रोसेसिंग मॉड्यूल का उपयोग करके 30 समवर्ती प्रतिलिपि के साथ प्रयास किया। कॉपी कंसोल के भीतर और कम त्रुटि प्रवण के मुकाबले बहुत तेज थी। बड़ी फ़ाइलों (> 5 जीबी) के साथ एक नया मुद्दा है: बोटो एक अपवाद उठाता है। अद्यतन स्क्रिप्ट पोस्ट करने से पहले मुझे इसे डीबग करना होगा।
क्या आपने किसी ऑब्जेक्ट को रीस्ट-कॉपी करने का प्रयास किया है (http://docs.amazonwebservices.com/AmazonS3/latest/API/ RESTObjectCOPY.html? r = 7426)? मैं इसे आज़मा दूंगा, शायद यह तेज़ है ... – Viccari
मुझे आशा है कि बोटो पहले से ही इस एपीआई को कॉल कर रहा है, लेकिन मैंने – ascobol
की जांच नहीं की है तो क्या मैं :) लेकिन मैंने कठिन तरीके से सीखा है कि यह जांच को चोट नहीं पहुंचाता है ... – Viccari