AWS S3 列举所有对象版本的费用计算相关问题
S3按前缀列举对象版本实现及费用问题解答
代码实现示例
如果需要以对象key为前缀列举该对象的所有版本,可以参考以下Python代码实现:
import boto3 bucket = 'bucket name' key = 'key' s3 = boto3.resource('s3') versions = s3.Bucket(bucket).object_versions.filter(Prefix=key) for version in versions: obj = version.get() print(obj.get('VersionId'), obj.get('ContentLength'), obj.get('LastModified'))
费用相关问题说明
- 你不需要为匹配前缀的每个对象/版本单独支付列表请求费用:S3列表类接口的计费单位是API请求次数,而非返回的结果条目数。单次
ListObjectVersions请求无论返回多少个匹配的版本条目,都仅计为1次列表请求,按1次请求的标准计费。 - 每个匹配的对象/版本不会单独计为一次列表请求:如果匹配前缀的版本总数超过1000条,接口会自动分页返回,每一页对应1次列表请求,按实际的分页请求次数计费即可。
注意:你示例代码中循环内调用的
version.get()属于GetObject类请求,每调用一次就会计为1次单独的GET请求,这部分费用和列表请求的费用是分开计算的。
内容的提问来源于stack exchange,提问作者mangotango
相关产品推荐
相关产品推荐

