我試圖通過.NET API重命名Azure存儲BLOB,這是我無法重命名的前一天,一個blob文件:(不能在Azure存儲重命名文件的blob
這裏是怎麼了這樣做,從舊創造新斑塊和複製。
var newBlob = blobContainer.GetBlobReferenceFromServer(filename);
newBlob.StartCopyFromBlob(blob.Uri);
blob.Delete();
沒有在服務器上沒有新斑塊所以我得到HTTP 404未發現異常。
這裏工作的例子,我已經找到,但它是舊的.net存儲API。
CloudBlob blob = container.GetBlobReference(sourceBlobName);
CloudBlob newBlob = container.GetBlobReference(destBlobName);
newBlob.UploadByteArray(new byte[] { });
newBlob.CopyFromBlob(blob);
blob.Delete();
當前我正在使用2.0 API。我在哪裏犯了一個錯誤?
在新的api中沒有GetBlockReference。新的api提供了GetBlobReferenceFromServer方法。沒有測試你的代碼,我不明白你的代碼如何擺脫http沒有發現異常而複製到none blob。 – Freshblood 2013-04-20 15:14:16
是的,有:http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.windowsazure.storage.blob.cloudblobcontainer.getblockblobreference.aspx。 GetBlobReferenceFromServer用於在不知道前期blob的類型以及blob需要存在的情況下。其實現在我已經更仔細地閱讀了你的問題,我已經編輯了我的答案(抱歉,應該在第一次去仔細閱讀你的問題)。 – 2013-04-20 15:25:36
不過newBlob.StartCopyFromBlob(blob.Uri)行拋出HTTP未發現異常:。((( – Freshblood 2013-04-20 19:42:59