Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

AWS Resource का उपयोग करके Boto3 लाइब्रेरी से S3 ऑब्जेक्ट कैसे हटाएं?


इस लेख में, हम देखेंगे कि Python के Boto3 लाइब्रेरी का उपयोग करके S3 से ऑब्जेक्ट कैसे हटाया जाता है।

उदाहरण - S3 के Bucket_1/testfolder से test.zip हटाएं।

इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम

चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।

चरण 2 - फ़ंक्शन में s3_files_path पैरामीटर है।

चरण 3 - मान्य करें कि s3_files_path AWS प्रारूप में s3://bucket_name/key के रूप में पारित किया गया है।

चरण 4 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं।

चरण 5 - S3 के लिए AWS रिसोर्स बनाएं।

चरण 6 - S3 पथ को विभाजित करें और रूट बकेट नाम और हटाने के लिए ऑब्जेक्ट पथ को अलग करने के लिए संचालन करें।

चरण 7 - अब delete_object फ़ंक्शन का उपयोग करें और बकेट नाम और कुंजी पास करें।

चरण 8 - ऑब्जेक्ट भी एक शब्दकोश है जिसमें फ़ाइल के सभी विवरण होते हैं। अब प्रत्येक फ़ाइल का LastModified विवरण प्राप्त करें और दिए गए दिनांक टाइमस्टैम्प के साथ तुलना करें।

चरण 9 - यदि फ़ाइल हटाते समय कुछ गलत हुआ तो सामान्य अपवाद को संभालें।

उदाहरण

S3 से ऑब्जेक्ट हटाने के लिए निम्न कोड का उपयोग करें -

import boto3
from botocore.exceptions import ClientError

def delete_objects_from_s3(s3_files_path):
    if 's3://' not in s3_files_path:
        raise Exception('Given path is not a valid s3 path.')
    session = boto3.session.Session(profile_name='saml')
    s3_resource = session.resource('s3')
    s3_tokens = s3_files_path.split('/')
    bucket_name = s3_tokens[2]
    object_path = ""
    filename = s3_tokens[len(s3_tokens) - 1]
    print('bucket_name: ' + bucket_name)
    if len(s3_tokens) > 4:
        for tokn in range(3, len(s3_tokens) - 1):
            object_path += s3_tokens[tokn] + "/"
        object_path += filename
    else:
        object_path += filename
    print('object: ' + object_path)
    try:
        result = s3_resource.meta.client.delete_object(Bucket=bucket_name, Key=object_path)
    except ClientError as e:
        raise Exception("boto3 client error in delete_objects_from_s3 function: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in delete_objects_from_s3 function of s3 helper: " + e.__str__())

# delete test.zip
print(delete_objects_from_s3("s3://Bucket_1/testfolder/test.zip"))

आउटपुट

bucket_name: Bucket_1
object: testfolder/test.zip

  1. - Python में Boto3 लाइब्रेरी का उपयोग करके AWS सत्र कैसे बनाएं?

    जब कोई उपयोगकर्ता लैम्ब्डा या प्रोग्रामिंग कोड का उपयोग करके AWS सेवाओं का उपयोग करना चाहता है, तो पहले AWS सेवाओं तक पहुंचने के लिए एक सत्र सेट अप करने की आवश्यकता होती है। AWS सत्र डिफ़ॉल्ट के साथ-साथ आवश्यकताओं के आधार पर कस्टमाइज़्ड भी हो सकता है। समस्या विवरण Python में Boto3 लाइब्रेरी का उपयो

  1. - पायथन का उपयोग करके फ़ाइल कैसे डिलीट करें?

    आप os मॉड्यूल में फ़ंक्शन्स का उपयोग करके एक सिंगल फ़ाइल या एक सिंगल खाली फ़ोल्डर डिलीट कर सकते हैं। उदाहरण के लिए, यदि आप my_file.txt फ़ाइल डिलीट करना चाहते हैं, >>> import os >>> os.remove(my_file.txt) os.remove का आर्गुमेंट एब्सोल्यूट या रिलेटिव पथ होना चाहिए।

  1. - पायथन में स्ट्रिंग से कैरेक्टर कैसे हटाएं?

    यदि आप स्ट्रिंग में किसी निश्चित इंडेक्स पर स्थित कैरेक्टर को हटाना चाहते हैं, तो आप स्ट्रिंग स्लाइसिंग का उपयोग करके उस कैरेक्टर के बिना एक नई स्ट्रिंग बना सकते हैं। उदाहरण के लिए: >>> s = Hello World >>> s[:4] + s[5:] Hell World लेकिन यदि आप किसी कैरेक्टर या कैरेक्टर्स की सूची के