2015-06-08 3 views
0

Я хочу загрузить все файлы из Контейнера «$ logs», но забрасывается StorageException.C# azure скачать все файлы

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

В чем проблема?

+1

Какое исключение вы получаете? –

+0

"storageexception удаленный сервер вернул ошибку (404) не найден" – AyhanGzr

ответ

2

Проблема заключается в том, что item.ToString() вернет «Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob», и поэтому такой blob не существует, что приводит к ошибке 404.

Изменить эту строку в

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

Edit: Код для записи файла локально неверен, а также. Попробуйте это

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); 
} 
+0

Большое спасибо .. но теперь он не загружает файлы!? – AyhanGzr

+0

Существует проблема с кодом для сохранения локально. Я обновил свой ответ. –

+0

на этот раз приходит это исключение, но каталог уже существует «directorynotfoundexception не смог найти часть пути C: \ Users \ Ay \ Downloads \ AzureLogs \ blob \ 2015 \ 06 \ 03 \ 1200 \ 000000.log" – AyhanGzr

Смежные вопросы