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

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

इस लेख में, हम देखेंगे कि पायथन की Boto 3 लाइब्रेरी का उपयोग करके S3 से किसी ऑब्जेक्ट को कैसे हटाया जाए।

उदाहरण − S3 के बकेट_1/टेस्टफ़ोल्डर से 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. कैसे अजगर में Boto3 पुस्तकालय का उपयोग कर एक एडब्ल्यूएस सत्र बनाने के लिए?

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

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

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

  1. कैसे अजगर का उपयोग कर एक स्ट्रिंग से एक चरित्र को हटाने के लिए?

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