मुझे एक आवश्यकता है जहां मेरे पास दो बाल्टी हैं उदाहरण बाल्टी 1 और बाल्टी 2। बकेट1 में सभी एक्सएमएल फाइलें हैं। मैं सभी एक्सएमएल फाइलों को बकेटए से बकेटबी (सभी फाइलों) में ले जाना चाहता हूं। और फिर बकेटए से सभी फाइलों को हटा दें।

मैं पाइथन लैम्ब्डा फ़ंक्शन के साथ Boto3 का उपयोग कर रहा हूं - यह बकेटए में अपडेट की गई किसी भी फ़ाइल के बाद ईवेंट-आधारित ट्रिगर करेगा

-1
user3215858 25 फरवरी 2020, 07:55
तुमने अब तक क्या प्रयास किया है? कृपया अपना कोड पोस्ट करें, कृपया समुदाय दिशानिर्देश देखें, यह प्लेटफॉर्म आपके उपयोग के मामलों के लिए समाधान प्रदाता नहीं है।
 – 
vishal
26 फरवरी 2020, 15:44

1 उत्तर

सबसे बढ़िया उत्तर

आप नीचे कोशिश कर सकते हैं:

import boto

c = boto.connect_s3()
src = c.get_bucket('source_bucket')
dst = c.get_bucket('destination_bucket')

for k in src.list():
    # copy files to your destination bucket
    dst.copy_key(k.key.name, src.name, k.key.name)
    # then delete the source key
    k.delete()

एक और तरीका जो मैंने नीचे किया है:

def get_object(s3, bucketName, file):

    try:
        s3_file = s3.get_object(
        Bucket = bucketName,
        Key = file
        )


        return s3_file

    except Exception as e:

        logger.info('file not found')



#Decription: This method enables to put file long with its conetent from one location to another
def move_objects(s3, bucketName, file, newFolder):

    #s3_object = s3.get_object(Bucket=bucketName, Key=file)

    #serializedObject = file['Body'].read().decode('utf-8')

    response = s3.put_object(
        Bucket = bucketName,
        Key = newFolder,
        Body = file.read().decode('utf-8')
        )


#Decription: This method enables to delete file from its original location
def delete_objects(s3, bucketName, file):

    response = s3.delete_object(
        Bucket = bucketName,
        Key = file

        )

इसके अलावा, इस वीडियो को देखें: https://youtu.be/7gqvV4tUxmY

1
GRVPrasad 25 फरवरी 2020, 14:48