আমি চেষ্টা করবো এবং এটি যতটা সম্ভব সহজ ব্যাখ্যা করব। সুতরাং প্রকৃত পদগুলির যথার্থতার কোনও গ্যারান্টি নেই।
সেশনটি যেখানে এডাব্লুএস পরিষেবাগুলিতে সংযোগটি শুরু করবে। উদাহরণস্বরূপ নিম্নলিখিতটি হ'ল ডিফল্ট সেশন যা ডিফল্ট শংসাপত্রের প্রোফাইল ব্যবহার করে (যেমন aw / .aws / শংসাপত্রগুলি, বা আইএএম উদাহরণ প্রোফাইল ব্যবহার করে আপনার ইসি 2 অনুমান)
sqs = boto3.client('sqs')
s3 = boto3.resource('s3')
যেহেতু ডিফল্ট সেশনটি ব্যবহার করা প্রোফাইল বা দৃষ্টান্তের প্রোফাইলের সীমাবদ্ধ, তাই কখনও কখনও আপনাকে ডিফল্ট সেশন কনফিগারেশন (যেমন অঞ্চল_নাম, শেষ পয়েন্ট_আরল ইত্যাদি) র ওভাররাইড করতে কাস্টম সেশন ব্যবহার করতে হবে যেমন
# custom resource session must use boto3.Session to do the override
my_west_session = boto3.Session(region_name = 'us-west-2')
my_east_session = boto3.Session(region_name = 'us-east-1')
backup_s3 = my_west_session.resource('s3')
video_s3 = my_east_session.resource('s3')
# you have two choices of create custom client session.
backup_s3c = my_west_session.client('s3')
video_s3c = boto3.client("s3", region_name = 'us-east-1')
সংস্থান : এটি ব্যবহারের জন্য প্রস্তাবিত উচ্চ-স্তরের পরিষেবা শ্রেণি। এটি আপনাকে নির্দিষ্ট এডাব্লুএস সংস্থানগুলি বেঁধে রাখার অনুমতি দেয় এবং এটি পাশাপাশি চলে যায়, তাই কোন লক্ষ্য পরিষেবাগুলি দেখানো হয়েছে তা চিন্তার চেয়ে আপনি কেবল এই বিমূর্ততাটি ব্যবহার করেন। আপনি যেমন সেশন অংশটি থেকে লক্ষ্য করেছেন, আপনার যদি কাস্টম সেশন থাকে তবে আপনি সমস্ত কাস্টম অঞ্চল ইত্যাদি সম্পর্কে চিন্তাভাবনা না করেই এই বিমূর্ত বস্তুটি পাস করুন along নীচে একটি জটিল উদাহরণ উদা
import boto3
my_west_session = boto3.Session(region_name = 'us-west-2')
my_east_session = boto3.Session(region_name = 'us-east-1')
backup_s3 = my_west_session.resource("s3")
video_s3 = my_east_session.resource("s3")
backup_bucket = backup_s3.Bucket('backupbucket')
video_bucket = video_s3.Bucket('videobucket')
# just pass the instantiated bucket object
def list_bucket_contents(bucket):
for object in bucket.objects.all():
print(object.key)
list_bucket_contents(backup_bucket)
list_bucket_contents(video_bucket)
মক্কেল একটি নিম্ন স্তরের শ্রেণীর অবজেক্ট। প্রতিটি ক্লায়েন্ট কলের জন্য, আপনাকে স্পষ্টভাবে লক্ষ্যবস্তু সংস্থানগুলি নির্দিষ্ট করতে হবে, মনোনীত পরিষেবা টার্গেটের নামটি দীর্ঘ হতে হবে। আপনি বিমূর্ত ক্ষমতা হারাবেন।
উদাহরণস্বরূপ, আপনি যদি কেবলমাত্র ডিফল্ট সেশনটির সাথে ডিল করেন তবে এটি বোটো 3.সোর্সের সাথে সাদৃশ্যপূর্ণ।
import boto3
s3 = boto3.client('s3')
def list_bucket_contents(bucket_name):
for object in s3.list_objects_v2(Bucket=bucket_name) :
print(object.key)
list_bucket_contents('Mybucket')
তবে, আপনি যদি বিভিন্ন অঞ্চলে বালতি থেকে অবজেক্টগুলি তালিকাবদ্ধ করতে চান তবে আপনাকে ক্লায়েন্টের জন্য প্রয়োজনীয় স্পষ্ট বালতি পরামিতি নির্দিষ্ট করতে হবে।
import boto3
backup_s3 = my_west_session.client('s3',region_name = 'us-west-2')
video_s3 = my_east_session.client('s3',region_name = 'us-east-1')
# you must pass boto3.Session.client and the bucket name
def list_bucket_contents(s3session, bucket_name):
response = s3session.list_objects_v2(Bucket=bucket_name)
if 'Contents' in response:
for obj in response['Contents']:
print(obj['key'])
list_bucket_contents(backup_s3, 'backupbucket')
list_bucket_contents(video_s3 , 'videobucket')