Коли використовувати клієнт boto3 і коли використовувати ресурс boto3?


83

Я намагаюся зрозуміти, коли мені слід користуватися ресурсом, а коли клієнтом .

Визначення, наведені в документах boto3, насправді не дають зрозуміти, коли переважно використовувати те чи інше.


3
Інший відповідь stackoverflow.com/a/42818143
anishpatel

Відповіді:


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
Дякую, це трохи допомагає, сама документація трохи розпливчаста, але, мабуть, ключовим є те, що клієнти призначають певні виклики API, які ви можете зробити.
aquil.abdullah 02

1
Я ініціалізую свого клієнта, передаючи клієнту облікові дані як параметри. імпортувати клієнт boto3 = boto3.client ('s3', aws_access_key_id = ACCESS_KEY, aws_secret_access_key = SECRET_KEY). Чи можу я зробити щось подібне для ресурсу? я не можу знайти це в документації.
Naveen

4
Приклад не показав нічого, що свідчить про різницю.
Набін

3
Будь потреба Вичерпний приклад, будь ласка , подивіться тут: stackoverflow.com/questions/42809096 / ...
mootmoot

1
Хтось має гарні пропозиції щодо документації через інтерфейси "ресурсу"? Документи BOTO3 зосереджені в основному на низькорівневих "клієнтських" інтерфейсах.
gye
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.