इस पोस्ट में हम उदाहरण दिखाते हैं कि पायथन और बोटो 3 लाइब्रेरी का उपयोग करके aws S3 बकेट से फ़ाइलों और छवियों को कैसे डाउनलोड किया जाए।
बोटो पायथन के लिए एक एडब्ल्यूएस एसडीके है। यह ऐसे कार्यों का उपयोग करने में आसान प्रदान करता है जो ईसी 2 और एस 3 बाल्टी जैसी एडब्ल्यूएस सेवाओं के साथ बातचीत कर सकते हैं।
Python और Boto 3 के साथ S3 ऑब्जेक्ट्स को डाउलोड करें
निम्नलिखित उदाहरण में, हम निर्दिष्ट S3 बकेट से एक फ़ाइल डाउनलोड करते हैं।
सबसे पहले हमें boto3.client(s3)
. का उपयोग करके एक S3 क्लाइंट बनाना होगा ।
import boto3
BUCKET_NAME = 'my_s3_bucket'
BUCKET_FILE_NAME = 'my_file.json'
LOCAL_FILE_NAME = 'downloaded.json'
def download_s3_file():
s3 = boto3.client('s3')
s3.download_file(BUCKET_NAME, BUCKET_FILE_NAME, LOCAL_FILE_NAME)
download_file
विधि तीन पैरामीटर लेती है:
पहला पैरामीटर S3 में बकेट नाम है। दूसरा वह फ़ाइल (नाम और एक्सटेंशन) है जिसे हम डाउनलोड करना चाहते हैं और तीसरा पैरामीटर उस फ़ाइल का नाम है जिसे हम सहेजना चाहते हैं।
सभी S3 ऑब्जेक्ट को एक निर्दिष्ट बकेट में डाउनलोड करें
निम्नलिखित उदाहरण में, हम सभी वस्तुओं को एक निर्दिष्ट S3 बकेट में डाउनलोड करते हैं।
कोड स्निपेट मानता है कि फ़ाइलें सीधे बकेट की जड़ में हैं और उप-फ़ोल्डर में नहीं हैं।
import boto3
def download_all_files():
#initiate s3 resource
s3 = boto3.resource('s3')
# select bucket
my_bucket = s3.Bucket('bucket_name')
# download file into current directory
for s3_object in my_bucket.objects.all():
filename = s3_object.key
my_bucket.download_file(s3_object.key, filename)
सब-फ़ोल्डर S3 बकेट में सभी ऑब्जेक्ट डाउनलोड करें
निम्न कोड दिखाता है कि S3 बकेट में उप-फ़ोल्डर में मौजूद फ़ाइलों को कैसे डाउनलोड किया जाए।
मान लीजिए फ़ाइलें निम्नलिखित बकेट और स्थान में हैं:
BUCKET_NAME = 'images'
PATH = pets/cats/
import boto3
import os
def download_all_objects_in_folder():
s3_resource = boto3.resource('s3')
my_bucket = s3_resource.Bucket('images')
objects = my_bucket.objects.filter(Prefix='pets/cats/')
for obj in objects:
path, filename = os.path.split(obj.key)
my_bucket.download_file(obj.key, filename)
संदर्भ
Boto 3 दस्तावेज़ीकरण