এই নিবন্ধে, আমরা পাইথনের বোটো 3 লাইব্রেরি ব্যবহার করে কীভাবে S3 থেকে একটি বস্তু মুছে ফেলা যায় তা দেখব৷
উদাহরণ − Bucket_1/S3 এর টেস্টফোল্ডার থেকে 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