2017-02-23 6 views
9

मैं अमेज़ॅन एडब्ल्यूएस एस 3 के साथ दो अलग-अलग क्षेत्रों में दो बाल्टी के बीच अमेज़ॅन एडब्ल्यूएस एस 3 वस्तुओं की प्रतिलिपि बनाने की कोशिश कर रहा हूं। यह एक बार की प्रक्रिया होगी, इसलिए मुझे cross-region replication की आवश्यकता नहीं है। copyObject() का उपयोग करने का प्रयास किया लेकिन क्षेत्र निर्दिष्ट करने का कोई तरीका नहीं है।अमेज़ॅन एडब्ल्यूएस PHP एसडीके वाले क्षेत्रों के बीच एस 3 ऑब्जेक्ट्स की प्रतिलिपि कैसे करें?

$s3->copyObject(array(
    'Bucket'  => $targetBucket, 
    'Key'  => $targetKeyname, 
    'CopySource' => "{$sourceBucket}/{$sourceKeyname}", 
)); 

स्रोत: http://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectUsingPHP.html

उत्तर

6

आपको लगता है कि ऑपरेशन के लिए क्षेत्रों को निर्दिष्ट करने की जरूरत नहीं है। यह लक्ष्य बाल्टी के क्षेत्र को पता लगाएगा और इसकी प्रतिलिपि बनायेगा।

लेकिन आप सही हो सकते हैं, क्योंकि एडब्ल्यूएस सीएलआई पर स्रोत क्षेत्र और लक्षित क्षेत्र विशेषताएँ हैं जो PHP एसडीके पर मौजूद नहीं हैं। तो आप इस तरह के कार्य को पूरा कर सकते हैं:

  1. स्रोत क्षेत्र में अंतरिम बाल्टी बनाएं।
  2. लक्ष्य क्षेत्र में बाल्टी बनाएं।
  3. एक लक्ष्य को लक्षित करने के लिए अंतरिम बाल्टी से प्रतिकृति कॉन्फ़िगर करें।
  4. अंतरिम बाल्टी set expiration rule पर, इसलिए अंतरिम बाल्टी से स्वचालित रूप से थोड़े समय के बाद फ़ाइलों को हटा दिया जाएगा।
  5. PHP एसडीके का उपयोग कर स्रोत बाल्टी से अंतरिम बाल्टी से वस्तुओं की प्रतिलिपि बनाएँ।
  6. आपकी सभी वस्तुओं को भी दूसरे क्षेत्र में कॉपी किया जाएगा।
  7. आप एक दिन बाद अंतरिम बाल्टी को हटा सकते हैं।

या बस CLI का उपयोग करें और इस एक आदेश का उपयोग करें:

aws s3 cp s3://my-source-bucket-in-us-west-2/ s3://my-target-bucket-in-us-east-1/ --recursive --source-region us-west-2 --region us-east-1 
2

विभिन्न क्षेत्र बाल्टी भी दूसरे खाते हो सकता है। अन्य लोग क्या कर रहे थे, एक बाल्टी से कॉपी करना और डेटा को स्थानीय रूप से अस्थायी रूप से सहेजना था, फिर विभिन्न क्रेडेंशियल्स के साथ अलग-अलग बाल्टी पर अपलोड करना था। (यदि आपके पास अलग-अलग प्रमाण-पत्रों के साथ दो क्षेत्रीय बाल्टी हैं)।

सीएलआई उपकरण से नवीनतम अपडेट आपको बाल्टी से बाल्टी में कॉपी करने की अनुमति देता है यदि यह एक ही खाते में है। Çağatay Gürtürk की तरह कुछ का उपयोग करना।

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