Загрузка файла из Azure не загружает полный файл, так же хорошо работает на локальном - PullRequest
0 голосов
/ 02 мая 2019

Мы используем Azure для хранения наших файлов, и когда мы загружаем \ скачиваем файлы, он использует эмулятор Azure, где все работает нормально и загружает файлы в полном размере.

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

Код загрузки указан ниже:

CloudBlobContainer blobContainer = await GetContainerAsync(tenantId);
            CloudBlockBlob blockBlob = blobContainer.GetBlockBlobReference(fileId);

            return await blockBlob.DownloadRangeToByteArrayAsync(target, index, offset, length);

А из API мы делаем ниже:

var read = await _fileStorageService.DownloadRangeToByteArrayAsync(id, buffer, 0, offset, dataToRead > bufferSize ? bufferSize : dataToRead);
                            offset += read;
                            dataToRead -= read;

                            await Response.Body.WriteAsync(buffer, 0, read);
                            await Response.Body.FlushAsync();

Что мы здесь делаем неправильно? Заранее спасибо

1 Ответ

0 голосов
/ 02 мая 2019

Я думаю, что вы передаете неправильную длину методу, и он загружает файл только до этой длины. Если вы хотите скачать весь файл, вы должны это:

CloudBlobContainer blobContainer = await GetContainerAsync(tenantId);
CloudBlockBlob blockBlob = blobContainer.GetBlockBlobReference(fileId);
return await blockBlob.DownloadToByteArrayAsync(target, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...