何时使用boto3客户端以及何时使用boto3资源?


Answers:


81

boto3.resource是环绕的高级服务类boto3.client

这意味着将连接的资源附加到您可以在以后使用其他资源的位置,而无需指定原始资源ID。

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

1
我通过将凭据作为参数传递给客户端来初始化客户端。导入boto3客户端= boto3.client('s3',aws_access_key_id = ACCESS_KEY,aws_secret_access_key = SECRET_KEY)。我可以为资源做类似的事情吗?即时通讯无法在文档中找到。
Naveen

4
该示例未显示任何显示差异的内容。
纳宾

2
任何人都需要综合的例子,请在这里看看:stackoverflow.com/questions/42809096/…–
mootmoot

1
在“资源”接口上,有人对文档有好的建议吗?BOTO3文档主要关注底层的“客户端”界面。
gye
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.