Я пытаюсь создать простой asp. net основной маршрут, который возвращает файл с другого URL-адреса. Примерно так:
private static HttpClient Client { get; } = new HttpClient();
async public Task<ActionResult<byte[]>> AssetStorage(string id)
{
var stream = await Client.GetStreamAsync("https://myurl/assetstorage/" + id);
return new FileStreamResult(stream, /* what here? */)
{
FileDownloadName = "filename"
};
}
Позже logi c станет более сложным, но в качестве теста я пробовал это.
В любом случае, "https://myurl/assetstorage/" + id
может возвращать разные типы файлы (возможно, PDF-файлы или изображения).
Есть ли способ получить заголовок типа мультимедиа с этого URL-адреса? Значит, я могу установить такой же для своего маршрута?
Я обнаружил, что могу сделать следующее:
var response = await Client.GetAsync("url" + id, HttpCompletionOption.ResponseHeadersRead);
string contentType = response.Headers.GetValues("Content-Type").First();
using (var stream = await response.Content.ReadAsStreamAsync())
{
return new FileStreamResult(stream, contentType)
{
FileDownloadName = "filename"
};
}
Однако это по какой-то причине не включает "Content -Type », хотя firefox показывает, что он находится на том же URL-адресе.