এই নিবন্ধে, আমরা দেখব কিভাবে S3 থেকে অবজেক্টের সমস্ত সংস্করণের তালিকা পাওয়া যায় যেগুলি AWS রিসোর্সে উপস্থিত রয়েছে৷
উদাহরণ
test.zip-এর সমস্ত সংস্করণ তালিকাভুক্ত করুন Bucket_1/testfolder থেকে S3 এর।
সমস্যা বিবৃতি: boto3 ব্যবহার করুন S3 থেকে বস্তুর সমস্ত সংস্করণের তালিকা পেতে পাইথনে লাইব্রেরি।
এই সমস্যা সমাধানের জন্য পদ্ধতি/অ্যালগরিদম
-
ধাপ 1: boto3 আমদানি করুন৷ এবং বোটোকোর ব্যতিক্রমগুলি পরিচালনা করার জন্য ব্যতিক্রম৷
-
ধাপ 2: bucket_name হল প্রয়োজনীয় প্যারামিটার।
-
ধাপ 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'}