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

时间:2016-09-01 13:23:41

标签: amazon-web-services boto3

我想了解何时应该使用Resource以及何时使用Client

boto3文档中提供的定义并不能说明何时使用其中一个或哪一个。

1 个答案:

答案 0 :(得分:48)

boto3.resources是一个围绕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.resources并没有包装所有boto3.client功能,所以有时你需要调用boto3.client,或者使用boto3.resource.meta.client()来完成工作。