У меня есть часть кода (в приложении UWP), которая читает blob из хранилища Azure. Я могу подключиться, перечислить контейнер и найти blob, однако, когда я пытаюсь загрузить его, я получаю исключение: Указанный blob не существует.Указанный blob не существует, используя DownloadToStreamAsync
Используя портал Azure, я могу просматривать контейнер, я вижу blob и даже могу скачать интерактивно. Я проверил URL-адреса, и они совпадают. У меня есть другие капли в других папках в одном контейнере, код загружает их в порядке.
Блаб создается автоматически с помощью задания Stream Analytics, так же, как и другие капли.
string csvText = null;
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CONNECTION_STRING);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(CONTAINER_NAME);
OperationContext context = new OperationContext();
BlobRequestOptions options = new BlobRequestOptions();
string prefix = string.Format("{0}/{1:yyyy/MM/dd/HH}", ROOT_FOLDER, SAMPLE_DATE); // ex: telemetry/2016/12/31/22
var blobs = await container.ListBlobsSegmentedAsync(prefix, true, BlobListingDetails.All, null, null, options, context);
CloudBlockBlob item = blobs.Results.FirstOrDefault() as CloudBlockBlob; // <<<< I see the blob here.
using (var memoryStream = new MemoryStream())
{
await item.DownloadToStreamAsync(memoryStream); // <<<< The specified blob does not exist.
csvText = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
}
EDIT: Трассировка стека:
Source Microsoft.WindowsAzure.Storage
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.<ExecuteAsyncInternal>d__c`1.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.WindowsAzure.Storage.Blob.CloudBlob.<>c__DisplayClass11.<<DownloadRangeToStreamAsync>b__10>d__13.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at HomeControl.Views.Historical.<LoadData>d__7.MoveNext()
Я попытался получить стельку след, но возникают проблемы при использовании его с UWP приложением. Любые предложения по устранению этой ошибки?
Благодаря
-John