Я реализую контроллер API, который должен функционировать в качестве шлюза для получения изображений. Позже этот шлюз должен проверить, авторизован ли пользователь для получения изображения, но на данный момент реализована только потоковая передача изображения, и мой вопрос в том, что я не хочу реализовывать свой потоковый шлюз плохим способом: правильный способ сделать это или есть лучший способ?
В настоящее время это код:
public IHttpActionResult Get(string objectId, string sessionId, string path)
{
var url = "An url to a jpeg or any other image";
var copyOfStream = new MemoryStream();
var request = WebRequest.Create(url);
var getImageResponse = request.GetResponse();
try
{
var stream = getImageResponse.GetResponseStream();
stream.CopyTo(copyOfStream);
}
finally
{
getImageResponse.Close();
}
var response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StreamContent(copyOfStream)
};
var contentType = MimeMapping.GetMimeMapping(Path.GetExtension(".jpg"));
response.Content.Headers.ContentType = new MediaTypeHeaderValue(contentType);
return ResponseMessage(response);
}
Есть предложения по улучшению?