amazon s3中对象的版本ID是文件,存储桶还是S3独有的?

医生说

如果启用存储桶的版本控制,则Amazon S3会自动为要存储的对象生成唯一的版本ID

当为存储桶启用版本控制时,我可以说,对于存储桶中的所有文件,返回的版本ID是唯一的吗?

我无法从他们的文档中获得足够的细节。 我错过了什么?

我担心的是亚马逊说

无论您使用多个桶还是less数几个桶,存储桶中可以存储的对象数量没有限制,性能也没有差别

版本号的长度是32。

版本ID的长度是32

所以它可以产生高达2 ^ 32的id即4,29,49,67,296 ,对吧? 那么对于可以在一个桶中创build的对象数量的限制呢?

提前致谢。

从技术上讲,未来可能会更长:

唯一的版本ID是随机生成的,Unicode,UTF-8编码,URL准备好,不透明string,最多1024个字节

http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html

但是,这些标识符的范围似乎并没有明确的说法。

存储桶版本控制文档(现在)包含以下声明:

当为存储桶启用版本控制时,添加到其中的所有对象都将具有唯一的版本ID。

假设这个写法是正确的,版本ID的范围是桶…但我仍然怀疑。 由于性能原因,S3有时会在存储分区上执行索引分区拆分,而跨分区的唯一版本ID维护似乎不太可能。 这实际上取决于版本ID中的信息实际上是什么意思,如果这意味着什么的话。 这是不透明的,所以我们知道,它可能是随机的。

从应用程序的angular度来看,它们只对于单个对象是唯一的,因为如果对象是在未版本化的存储区中创build的,并且稍后在存储区上启用了版本控制,则版本控制启用时存在的每个对象都具有相同的版本ID ,当您与REST API进行交互时,这是文字stringnull

但是,在任何情况下,版本ID在没有使用密钥的情况下都是没有意义的,因为不能通过版本ID单独获取对象 – 只能通过密钥+版本ID。

总而言之,恰当的行动似乎是假设版本id被限定在对象关键级别上,而且只在对象关键级别上有意义。