的時候所以我複製一個blob blob
和覆蓋另一個BLOB newBlob
用下面的代碼在新斑塊被覆蓋:是否有可能迫使蔚藍BLOB元數據複製
CopyStatus copy = CopyStatus.Pending;
while (copy != CopyStatus.Success)
{
newBlob.StartCopyFromBlob(blob);
copy = manager.CheckIsDoneCopying(newBlob, container.Name);
}
newBlob
上已經有元數據之前複製和從here我看到:
如果沒有指定名稱 - 值對,該操作將在 源BLOB元數據複製到目標斑點。如果指定了一個或多個 名稱/值對,則將使用指定的元數據創建目標blob,並且不會從源 blob複製元數據。
我收集的意思是舊的blob元數據不會被複制過來。我想迫使原有的斑點覆蓋newBlob's
元數據,然後使用編輯newBlobs元以下:
newBlob.FetchAttributes();
if (newBlob.Metadata.ContainsKey(StorageManager.IsLive))
{
newBlob.Metadata[StorageManager.IsLive] = "Y";
}
else
{
newBlob.Metadata.Add(new KeyValuePair<string, string>(StorageManager.IsLive, "Y"));
}
if (newBlob.Metadata.ContainsKey(StorageManager.LastUploadedTime))
{
newBlob.Metadata[StorageManager.LastUploadedTime] = uploadedTime.Ticks.ToString();
}
else
{
newBlob.Metadata.Add(new KeyValuePair<string, string>(StorageManager.LastUploadedTime, uploadedTime.Ticks.ToString()));
}
是否有可能迫使newblobs元數據的覆蓋從舊的BLOB?
編輯
如果我添加一行來我的代碼:
CopyStatus copy = CopyStatus.Pending;
newBlob.Metadata.Clear();
while (copy != CopyStatus.Success)
{...
元數據被複制。雖然這不可能是複製操作失敗或永不完成的唯一方式,但這意味着我有一個無效的newBlob。必須有比這更好的方法嗎?