Невозможно передать изображение из BLOB-объекта Azure - PullRequest
0 голосов
/ 02 июня 2018

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

Работает следующий код ( загрузка кредитов / контейнера Azure для краткости ), но происходит сбой при возврате вывода (см. Ниже 500)

if (await blockBlob.ExistsAsync())
{
     var stream = new MemoryStream();

     await blockBlob.DownloadToStreamAsync(stream);

    return new FileStreamResult(stream, "image/jpeg"); 

Результат 500 (Ошибка: внутренняя ошибка сервера):

server: Kestrel    
x-sourcefiles: =?UTF-8BQzpcX0NvZGVcUGV0U21hcnRcUG9kc1xQT0RTXGN1c3RvbWVyc1xwaG90b3NcZG93bmxvYWQ=?= 
x-powered-by: ASP.NET   
date: Fri, 01 Jun 2018 21:21:18 GMT   
content-length: 0

Конечная точка

[HttpGet]
[Route("/photos/download")]
[SwaggerOperation("Photo Download")]
public async Task<IActionResult> DownloadPhoto([FromQuery]long? photoId)

Это сложнокодированный возврат работает как талисман

var image = System.IO.File.OpenRead(@"C:\Temp\info.png");
return File(image, "image/jpeg");

Я могу просмотреть и загрузить именованный BLOB-объект в обозревателе хранилищ Azure.

1 Ответ

0 голосов
/ 04 июня 2018

Кажется, вы забыли искать позицию потока обратно в 0.

Просто добавьте stream.Position = 0; после загрузки потока.

...