CloudBlob.DownloadToStream возвращает null

Я пытаюсь загрузить файл из cloudBlob через поток. Я ссылаюсь на эту статью CloudBlob

​​Вот код для загрузки блоба

public Stream DownloadBlobAsStream(CloudStorageAccount account, string blobUri)
{
    Stream mem = new MemoryStream();
    CloudBlobClient blobclient = account.CreateCloudBlobClient();
    CloudBlockBlob blob = blobclient.GetBlockBlobReference(blobUri);

    if (blob != null)
        blob.DownloadToStream(mem);

    return mem;
}  

И код для преобразования его в массив байтов

    public static byte[] ReadFully(Stream input)
    {
        byte[] buffer = new byte[16 * 1024];
        using (MemoryStream ms = new MemoryStream())
        {
            int read;
            while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
            {
                ms.Write(buffer, 0, read);
            }
            return ms.ToArray();
        }
    }  

Но я всегда получаю нулевое значение. Ниже содержимое потокового файла.

enter image description here

Что не так? Пожалуйста, помогите

РЕДАКТИРОВАТЬ

Установка позиции на 0 внутри метода ReadFullyне разрешена, поэтому я поместил его внутрь DownloadBlobAsStream

Теперь это должно работать:

public Stream DownloadBlobAsStream(CloudStorageAccount account, string blobUri)
{
    Stream mem = new MemoryStream();
    CloudBlobClient blobclient = account.CreateCloudBlobClient();
    CloudBlockBlob blob = blobclient.GetBlockBlobReference(blobUri);

    if (blob != null)
        blob.DownloadToStream(mem);
    mem.Position = 0;   
    return mem;
} 

12
задан fiberOptics 5 June 2012 в 07:10
поделиться