मैं यह समझने की कोशिश कर रहा हूं कि मुझे संसाधन का उपयोग कब करना चाहिए और ग्राहक का उपयोग कब करना चाहिए ।
बोटो 3 डॉक्स में प्रदान की गई परिभाषाएं वास्तव में यह स्पष्ट नहीं करती हैं कि जब एक या दूसरे का उपयोग करना बेहतर होता है।
जवाबों:
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
काम पूरा करने के लिए उपयोग करना पड़ता है।