2014-02-26 89 views
5

如果存在相同的名稱,是否有任何方法可以替換文件?我在Azure存儲中看不到任何替換方法。這裏是我的代碼:替換Azure存儲中的內容

var client = new CloudBlobClient(
     new Uri(" http://sweetapp.blob.core.windows.net/"), credentials); 
var container = client.GetContainerReference("cakepictures"); 
await container.CreateIfNotExistsAsync(); 
var perm = new BlobContainerPermissions(); 
perm.PublicAccess = BlobContainerPublicAccessType.Blob; 
await container.SetPermissionsAsync(perm); 
var blockBlob = container.GetBlockBlobReference(newfilename + i + file.FileType); 
using (var fileStream = await file.OpenSequentialReadAsync()) 
{ 
    await blockBlob.UploadFromStreamAsync(fileStream); 
} 

有什麼,我可以添加到這個代碼,以便它替換現有或相同的文件名?

+1

我想,唯一的辦法就是執行步驟:刪除並上傳新的。 – Andrei

+0

哦,就是這樣。我將如何管理我的存儲?還有其他方法嗎?如果沒有這樣的方法,那麼我的存儲空間會越來越大。 :3 –

+1

如果您在上傳新文件之前刪除文件,文件不會變大 – Andrei

回答

15

如果blob存儲中存在blob,並且如果您上傳與blob具有相同名稱的另一個文件,舊的blob內容將自動替換爲新文件的內容。你不必做任何特別的事情。

2

由於Gaurav在他的回答中也提到,UploadFromStream API的默認行爲是覆蓋,如果blob已經存在。