Невозможно загрузить Azure Blob в поток - PullRequest
0 голосов
/ 09 октября 2018

Я использую хранилище BLOB-объектов Azure для сохранения некоторых файлов.У меня проблемы с загрузкой этого потока, и я не уверен, почему.Я не получаю никаких ошибок, просто пустой поток.Я проверил, что файл существует в контейнере, и даже запустил код, чтобы вывести список всех файлов в контейнере.Любая помощь будет принята с благодарностью.

private async Task<MemoryStream> GetMemoryStreamAsync(string fileName)
{
    var storageAccountName = Environment.GetEnvironmentVariable("storage_account_name");
    var storageAccountKey = Environment.GetEnvironmentVariable("storage_access_key");
    var storageContainerName = Environment.GetEnvironmentVariable("storage_container_name");

    CloudStorageAccount storageAccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(storageAccountName, storageAccountKey), true);
    CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
    CloudBlobContainer container = blobClient.GetContainerReference(storageContainerName);
    CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);

    MemoryStream stream = new MemoryStream();

    await blockBlob.DownloadToStreamAsync(stream);

    return stream;
}

1 Ответ

0 голосов
/ 09 октября 2018

Вам нужно будет установить нулевую позицию перед возвратом потока, чтобы потребитель потока прочитал ее с самого начала.

MemoryStream stream = new MemoryStream();

await blockBlob.DownloadToStreamAsync(stream);

stream.Position = 0;

return stream;
...