2013-03-15 65 views
0

我處於一種情況,在這種情況下,我在存儲空間爲url的圖片上存在1000個blob,這是一個問題。 所以作爲我們想要更新blob uri的措施,並刪除其中每個有一個的空間。 我知道如何獲得blob,或者會弄清楚,但無法理解如何更新uri,一旦我得到一個blob這裏是我目前的代碼來獲得blob。如何以編程方式更新azure blob網址

 CloudBlobContainer container = GetContainerReference('containername'); 
     var blobs=container.ListBlobs().Select(p=>p.Uri.ToString().Contains(' ')); 
     foreach (CloudBlob item in blobs) 
     { 

     } 
+0

假設它可以完成,不會只是從blob的名稱(或URI)中刪除空間讓你blob無法訪問?存儲在blob存儲中的blob在其名稱/ URI中有一個空格? – 2013-03-15 06:51:11

+0

uri.i同意。可能刪除並創建它的副本是解決方案.. – 2013-03-15 09:43:57

回答

2

Windows Azure BlobStorage API未提供允許您直接更改blob的URI的方法。但是,您仍然可以將blob複製到其URI中沒有空格的新塊,然後刪除舊塊。

CloudBlobContainer container = GetContainerReference('containername'); 
var blobs = container.ListBlobs().Select(p => p.Uri.ToString().Contains(' ')); 
foreach (CloudBlob oldBlob in blobs) 
{ 
    var newBlobName = oldBlob.Name.Replace(" ", String.Empty); 
    var newBlob = container.GetBlobReference(newBlobName); 
    newBlob.CopyFromBlob(oldBlob); 

    oldBlob.Delete(); 
}