簡體   English   中英

Azure Blob存儲下載所有文件

[英]Azure Blob Storage Download All Files

我想從容器“ $ logs”下載所有文件,但是拋出了StorageException

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=" + accName + ";AccountKey=" + accKey);

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

CloudBlobContainer container = blobClient.GetContainerReference("$logs");

IEnumerable<IListBlobItem> ListBlobs = container.ListBlobs(string.Empty, true);

foreach (var item in ListBlobs)
{
    CloudBlockBlob blockBlob = container.GetBlockBlobReference(item.ToString());
    string path= (@"C:\Users\Ay\Downloads\AzureLogs");
    blockBlob.DownloadToFile(path, FileMode.Open);
}

問題是什么?

問題是item.ToString()將返回“ Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob”,因此不存在此類Blob,從而導致404錯誤。

將該行更改為

CloudBlockBlob blockBlob = container.GetBlockBlobReference(((CloudBlockBlob)item).Name);

編輯:本地寫入文件的代碼也不正確。 嘗試這個

foreach (var item in ListBlobs)
{
    string name = ((CloudBlockBlob) item).Name;
    CloudBlockBlob blockBlob = container.GetBlockBlobReference(name);
    string path = (@"C:\Users\Ay\Downloads\AzureLogs\" + name);
    blockBlob.DownloadToFile(path, FileMode.OpenOrCreate);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM