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

AWS संसाधन में मौजूद S3 से ऑब्जेक्ट के सभी संस्करणों की सूची कैसे प्राप्त करें

इस लेख में, हम देखेंगे कि S3 से ऑब्जेक्ट के सभी संस्करणों की सूची कैसे प्राप्त करें जो AWS संसाधन में मौजूद हैं।

उदाहरण

test.zip . के सभी संस्करणों की सूची बनाएं बकेट_1/टेस्टफ़ोल्डर . से S3 का।

समस्या कथन: boto3 . का उपयोग करें S3 से ऑब्जेक्ट के सभी संस्करणों की सूची प्राप्त करने के लिए पायथन में पुस्तकालय।

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

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

  • चरण 2: बाल्टी_नाम आवश्यक पैरामीटर है।

  • चरण 3: boto3 lib . का उपयोग करके AWS सत्र बनाएं

  • चरण 4: S3 के लिए AWS क्लाइंट बनाएं

  • चरण 5: अब, फ़ंक्शन list_object_versions का उपयोग करके दिए गए बकेट के ऑब्जेक्ट के सभी संस्करणों को सूचीबद्ध करें और अपवादों को संभालें, यदि कोई हो।

  • चरण 6: उपरोक्त फ़ंक्शन का परिणाम एक शब्दकोश है और इसमें दिए गए बकेट में ऑब्जेक्ट के सभी संस्करण शामिल हैं।

  • चरण 7: ऑब्जेक्ट के सभी संस्करणों की सूची लौटाएं।

उदाहरण कोड

निम्न कोड का उपयोग करें AWS S3 से ऑब्जेक्ट के सभी संस्करणों की सूची प्राप्त करें -

import boto3
from botocore.exceptions import ClientError

def list_all_objects_version(bucket_name, prefix_name):  
   session = boto3.session.Session()
   s3_client = session.client('s3')
   try:
      result = s3_client.list_object_versions(Bucket=bucket_name, Prefix=prefix_name)
   except ClientError as e:
      raise Exception("boto3 client error in list_all_objects_version function: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in list_all_objects_version function of s3 helper: " + e.__str__())
print(list_all_objects_version("Bucket_1","testfolder"))

आउटपुट

{'ResponseMetadata': {'RequestId': 'H4VAGM3YP6', 'HostId': ***********', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amz-id-2': ***************', 'x-amz-request-id': 'H4VAGM3YP6', 'date': 'Sat, 03 Apr 2021 08:04:08 GMT', 'content-type': 'application/xml', 'transfer-encoding': 'chunked', 'server': 'AmazonS3'}, 'RetryAttempts': 0}, 'IsTruncated': False, 'KeyMarker': '', 'VersionIdMarker': '',
'Versions': [{'ETag': '"705e2e674b04ca71"', 'Size': 1773, 'StorageClass': 'STANDARD', 'Key': 'testfolder/test.zip', 'VersionId': 'null', 'IsLatest': True, 'LastModified': datetime.datetime(2020, 12, 18, 14, 13, 18, tzinfo=tzutc()), 'Owner': {'DisplayName': 'AWS.Development', 'ID': '928*******************************'}}], 'Name': 'Bucket_1', 'Prefix': 'testfolder', 'MaxKeys': 1000, 'EncodingType': 'url'}

  1. Matplotlib में समोच्च से निर्देशांक कैसे प्राप्त करें?

    Matplotlib में समोच्च से निर्देशांक प्राप्त करने के लिए, हम निम्नलिखित कदम उठा सकते हैं - आकृति का आकार सेट करें और सबप्लॉट के बीच और आसपास पैडिंग समायोजित करें। x, y . की सूचियां बनाएं और मी डेटा बिंदुओं के साथ। plt.contour(x, y, m . का प्रयोग करें ) x, y और m डेटा बिंदुओं के साथ एक कंटूर प्लॉट बन

  1. पायथन - एक स्ट्रिंग से सभी अंक कैसे निकालें

    जब किसी अंक के साथ स्ट्रिंग निकालने की आवश्यकता होती है, तो एक सूची समझ और isdigit पद्धति का उपयोग किया जाता है। उदाहरण नीचे उसी का एक प्रदर्शन है - my_string = "python is 12 fun 2 learn" print("The string is : ") print(my_string) my_result = [int(i) for i in my_string.split()

  1. Matplotlib में एक साजिश से सभी किंवदंतियों को कैसे प्राप्त करें?

    Matplotlib में एक भूखंड से सभी किंवदंतियों को प्राप्त करने के लिए, हम get_children() का उपयोग कर सकते हैं अक्ष के सभी गुण प्राप्त करने के लिए विधि, फिर सभी गुणों को पुनरावृत्त करें। यदि कोई आइटम लेजेंड का उदाहरण है, तो लेजेंड टेक्स्ट प्राप्त करें। कदम फिगर साइज सेट करें और सबप्लॉट्स के बीच और आसप