Boto3 ग्राहक का उपयोग कब करें और boto3 संसाधन का उपयोग कब करें?


83

मैं यह समझने की कोशिश कर रहा हूं कि मुझे संसाधन का उपयोग कब करना चाहिए और ग्राहक का उपयोग कब करना चाहिए ।

बोटो 3 डॉक्स में प्रदान की गई परिभाषाएं वास्तव में यह स्पष्ट नहीं करती हैं कि जब एक या दूसरे का उपयोग करना बेहतर होता है।


3
एक अन्य जवाब stackoverflow.com/a/42818143
अनीशपेटेल

जवाबों:


86

boto3.resourceएक उच्च-स्तरीय सेवा वर्ग आवरण है boto3.client

यह जुड़ा संसाधनों को संलग्न करने के लिए है, जहां आप बाद में मूल संसाधन-आईडी को निर्दिष्ट किए बिना अन्य संसाधनों का उपयोग कर सकते हैं।

import boto3
s3 = boto3.resource("s3")
bucket = s3.Bucket('mybucket')

# now bucket is "attached" the S3 bucket name "mybucket"
print(bucket)
# s3.Bucket(name='mybucket')

print(dir(bucket))
#show you all class method action you may perform

OTH, boto3.client निम्न स्तर के हैं, आपके पास "एंट्री-क्लास ऑब्जेक्ट" नहीं है, इस प्रकार आपको अपने द्वारा किए जाने वाले प्रत्येक क्रिया के लिए इसे जोड़ने वाले सटीक संसाधनों को स्पष्ट रूप से निर्दिष्ट करना होगा।

यह व्यक्तिगत जरूरतों पर निर्भर करता है। हालांकि, boto3.resourceसभी boto3.clientकार्यक्षमता को लपेटता नहीं है , इसलिए कभी-कभी आपको कॉल करने की आवश्यकता होती है boto3.client, या boto3.resource.meta.clientकाम पूरा करने के लिए उपयोग करना पड़ता है।


2
धन्यवाद, यह थोड़ा मदद करता है, प्रलेखन स्वयं थोड़ा अस्पष्ट है, लेकिन मुझे लगता है कि ग्राहक विशिष्ट एपीआई कॉल को मैप करते हैं जो आप बना सकते हैं।
aquil.abdullah 13

1
Im ग्राहक के मापदंडों के रूप में क्रेडेंशियल पास करके अपने क्लाइंट को इनिशियलाइज़ कर रहा हूं। आयात boto3 ग्राहक = boto3.client ('s3', aws_access_key_id = ACCESS_KEY, aws_secret_access_key = SECRET_KEY)। क्या मैं संसाधन के लिए कुछ ऐसा ही कर सकता हूं? im इस दस्तावेज़ में नहीं मिल रहा है।
नवीन

4
उदाहरण ने कुछ भी नहीं दिखाया जो अंतर दिखाता है।
नबीन

3
किसी को भी व्यापक उदाहरण की आवश्यकता है, कृपया यहाँ एक नज़र डालें: stackoverflow.com/questions/42809096/…
mootmoot

1
क्या किसी को "संसाधन" इंटरफेस पर प्रलेखन पर अच्छे सुझाव हैं? BOTO3 डॉक्स मुख्य रूप से निम्न-स्तरीय "क्लाइंट" इंटरफेस पर केंद्रित है।
gye
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.