医生说
如果启用存储桶的版本控制,则Amazon S3会自动为要存储的对象生成唯一的版本ID
当为存储桶启用版本控制时,我可以说,对于存储桶中的所有文件,返回的版本ID是唯一的吗?
我无法从他们的文档中获得足够的细节。 我错过了什么?
我担心的是亚马逊说
无论您使用多个桶还是less数几个桶,存储桶中可以存储的对象数量没有限制,性能也没有差别
但版本号的长度是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被限定在对象关键级别上,而且只在对象关键级别上有意义。