2013-03-15 2 views
0

나는 거기에 공간이있는 그림이있는 하늘색 저장소에 1000 개의 얼룩이있는 상황에 있습니다. 그래서 우리는 방울 uri를 업데이트하고 각각에 하나가있는 공백을 제거하기위한 조치를 취합니다. blob을 얻는 방법을 알고 있거나 알아낼 수는 있지만 이해할 수는 없지만 일단 내가 blob을 얻으면 uri를 업데이트 할 수있는 방법은 현재 코드가 blob을 얻는 것입니다.azure blob url을 프로그래밍 방식으로 업데이트하는 방법

 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에 공백이 있습니까? –

+0

uri.i 동의. 아마 그것의 사본을 삭제하고 창조하는 것은 해결책이다. –

답변

2

Windows Azure BlobStorage API에는 blob의 URI를 직접 변경할 수있는 방법이 없습니다. 그러나 BLOB를 URI에 공백이없는 새 BLOB로 복사 한 다음 이전 BLOB를 삭제할 수 있습니다.

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(); 
}