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

एडब्ल्यूएस गोंद में मौजूद एक S3 बाल्टी की बहु-भाग अपलोड वस्तुओं के माध्यम से पृष्ठांकित करने के लिए Boto3 का उपयोग कैसे करें

समस्या कथन: boto3 . का उपयोग करें आपके खाते में बनाए गए AWS ग्लू डेटा कैटलॉग से S3 बकेट के बहु-भाग अपलोड ऑब्जेक्ट्स के माध्यम से पेजिनेट करने के लिए पायथन में लाइब्रेरी

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

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

  • चरण 2: उपसर्ग_नाम, max_items , पृष्ठ_आकार और शुरुआती_टोकन इस फ़ंक्शन के लिए वैकल्पिक पैरामीटर है जबकि bucket_name आवश्यक पैरामीटर है।

    • उपसर्ग_नाम वह विशिष्ट उप फ़ोल्डर है जहां उपयोगकर्ता पृष्ठ पर अंक लगाना चाहता है

    • अधिकतम_आइटम लौटने के लिए रिकॉर्ड की कुल संख्या को निरूपित करें। यदि उपलब्ध रिकॉर्ड की संख्या> max_items , फिर एक नेक्स्टटोकन पेजिनेशन फिर से शुरू करने के जवाब में प्रदान किया जाएगा।

    • पृष्ठ_आकार प्रत्येक पृष्ठ के आकार को दर्शाता है।

  • शुरुआती_टोकन पृष्ठांकित करने में मदद करता है, और यह पिछले प्रतिक्रिया से मार्कर का उपयोग करता है।

  • चरण 3: boto3 lib . का उपयोग करके AWS सत्र बनाएं . सुनिश्चित करें कि क्षेत्र_नाम डिफ़ॉल्ट प्रोफ़ाइल में उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो स्पष्ट रूप से region_name . पास करें सत्र बनाते समय।

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

  • चरण 5: एक पेजिनेटर बनाएं ऑब्जेक्ट जिसमें list_multipart_uploads . का उपयोग करके S3 बकेट के ऑब्जेक्ट संस्करणों का विवरण होता है ।

  • चरण 6: पेजिनेट फ़ंक्शन को कॉल करें और max_items . पास करें , पृष्ठ_आकार और शुरुआती_टोकन PaginationConfig . के रूप में पैरामीटर जबकि bucket_name बाल्टी पैरामीटर के रूप में और उपसर्ग_नाम उपसर्ग के रूप में।

  • चरण 7: यह max_size . के आधार पर रिकॉर्ड की संख्या लौटाता है और पृष्ठ_आकार

  • चरण 8: अगर पेजिंग करते समय कुछ गलत हो जाता है तो सामान्य अपवाद को हैंडल करें।

उदाहरण कोड

उपयोगकर्ता खाते में बनाए गए S3 बकेट के मल्टीपार्ट अपलोड के माध्यम से पेजेट करने के लिए निम्नलिखित कोड का उपयोग करें -

import boto3
from botocore.exceptions import ClientError

def paginate_through_multipart_upload_s3_bucket(bucket_name, prefix_name=None, max_items=None:int,page_size=None:int, starting_token=None:string):
   session = boto3.session.Session()
   s3_client = session.client('s3')
   try:
   paginator = s3_client.get_paginator('list_objects')
      response = paginator.paginate(Bucket=bucket_name, Prefix=prefix_name,   PaginationConfig={
         'MaxItems':max_items,
         'PageSize':page_size,
         'StartingToken':starting_token}
      )
   return response
   except ClientError as e:
      raise Exception("boto3 client error in paginate_through_multipart_upload_s3_bucket: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in paginate_through_multipart_upload_s3_bucket: " + e.__str__())

a = paginate_through_multipart_upload_s3_bucket('s3-test-bucket', 'testfolder',2,5)
print(*a)

आउटपुट

{'ResponseMetadata': {'RequestId': 'YA9CGTAAX', 'HostId': '8dqJW******************', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amz-id-2': '8dqJW*********************, 'x-amz-request-id': 'YA9CGTAAX', 'date': 'Sat, 03 Apr 2021 08:16:05 GMT', 'content-type': 'application/xml', 'transfer-encoding': 'chunked', 'server': 'AmazonS3'}, 'RetryAttempts': 0}, 'Bucket': 's3-test-bucket', 'KeyMarker': '', 'UploadIdMarker': '', 'NextKeyMarker': '', 'Prefix': 'testfolder', 'NextUploadIdMarker': '', 'MaxUploads': 5, 'IsTruncated': False, 'Uploads': [
{'UploadId': 'YADF**************LK25',
'Key': 'testfolder/testfilemultiupload.csv',
'Intiated':datetime(2021,1,2),
'StorageClass': 'STANDARD'
'Owner':{
'DisplayName': 'AmazonServicesJob'
'Id': '********************'
}
], 'CommonPrefixes': None}

  1. AWS Glue Security में मौजूद सभी सुरक्षा कॉन्फ़िगरेशन का विवरण प्राप्त करने के लिए Boto3 का उपयोग कैसे करें?

    समस्या का विवरण - AWS Glue Security में मौजूद सभी सुरक्षा कॉन्फ़िगरेशन का विवरण प्राप्त करने के लिए Python में boto3 लाइब्रेरी का उपयोग करें। उदाहरण - एडब्ल्यूएस गोंद सुरक्षा में मौजूद सभी सुरक्षा विन्यास का विवरण प्राप्त करें। इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभ

  1. AWS Glue Security में मौजूद एक निर्दिष्ट सुरक्षा कॉन्फ़िगरेशन का विवरण प्राप्त करने के लिए Boto3 का उपयोग कैसे करें?

    समस्या का विवरण - AWS Glue Security में मौजूद एक निर्दिष्ट सुरक्षा कॉन्फ़िगरेशन का विवरण प्राप्त करने के लिए Python में boto3 लाइब्रेरी का उपयोग करें। उदाहरण - एडब्ल्यूएस गोंद सुरक्षा में मौजूद एक निर्दिष्ट सुरक्षा कॉन्फ़िगरेशन (नौकरी-सुरक्षा-सेटिंग्स) का विवरण प्राप्त करें। इस समस्या को हल करने के

  1. एडब्ल्यूएस गोंद से गोंद नौकरी को हटाने के लिए Boto3 का उपयोग कैसे करें?

    समस्या का विवरण − अपने खाते में बनाए गए ग्लू जॉब को हटाने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें। उदाहरण − आपके खाते में बनाए गए ग्लू जॉब transfer_from_s3 को मिटा दें। इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें। चरण