2017-04-26 33 views
0

一个新的对象版本ID我有是无版本的对象桶。然后,我打开版本控制,并且这些现有对象没有版本标识,只有新上传的对象才会有版本标识。我希望能够为每个当前没有的对象生成一个versionId,而不必使用像拷贝到临时位置这样的解决方法,然后重写原始对象。就额外的版本化存储而言,这会带来很高的成本,而且复制这么多的数据也是非常耗时的。有没有一种方法可以生成版本ID?生成S3

这是错误:

An error occurred (InvalidRequest) when calling the CopyObject operation: This copy request is illegal because it is trying to copy an object to itself without changing the object's metadata, storage class, website redirect location or encryption attributes.

+0

你为什么要这样?你想克服一个特定的问题吗? –

回答

2

Then I turned on versioning and those existing objects do not have a versionId, only newly uploaded objects will.

这是不正确的。当您启用在未版本控制斗版本,所有现有的对象有自己的版本ID设置为4字节的字符串null。这不是“空”,如“空”或“不存在”,而是一个实际的字符串。

此值的行为与任何其他版本-ID,从你的角度来看,由于版本的IDS已经没有任何意义(他们是不透明的字符串,而不是数字,如在一些文件示例中所示)。

0

因为它返回的错误是非常有帮助的,只是做它表明,改变任何东西,这将使该对象有不同的版本比以前。对我来说最简单的就是添加一个用户元数据。