1

我有一个带有版本的 s3 存储桶和一个带有多个版本的密钥。我想知道是否有一种有效的方法可以找到存储桶中特定密钥的版本数。

这是我知道的唯一方法

version_count = list(bucket.list_versions().__iter__())

这个信息在其他地方吗?

如果我可以通过删除一个版本来获得这些信息,但在我的搜索中没有找到任何东西,那就太好了。

4

1 回答 1

3

查找对象的所有版本的唯一方法是列出版本。但是,列出版本时需要小心,因为返回的对象列表还可能包括不应计算在内的 DeleteMarkers。

我发现这有效:

import boto
from boto.s3.key import Key

c = boto.connect_s3()
bucket = c.lookup('mybucket')
versions = [v for v in bucket.list_versions('myversionedobject') if isinstance(v, Key)]

该变量versions现在将包含一个实际版本列表,显然,len()在该列表上执行 a 将为您提供版本数。如果有更简单的方法可以做到这一点,我不知道。

于 2013-10-09T12:28:32.710 回答