2017-04-26 47 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

因爲它返回的錯誤是非常有幫助的,只是做它表明,改變任何東西,這將使該對象有不同的版本比以前。對我來說最簡單的就是添加一個用戶元數據。