Я создаю приложение MVC 3 (хотя оно применимо и к другим технологиям, например, ASP.NET Forms), и мне было просто интересно, возможно ли (с точки зрения производительности) обслуживать изображения из кода, а не использовать прямой виртуальный путь (например, обычно).
Идея состоит в том, чтобы улучшить общий метод обслуживания файлов до:
- Применить проверки безопасности
- Стандартизированный метод обслуживания файлов на основе значений маршрута
- Возврат модифицированных изображений (если требуется), например различные размеры (хорошо, это будет использоваться только экономно, поэтому не связывайте это с вопросом производительности выше).
- Выполнение бизнес-логики перед разрешением доступа к ресурсу
Я знаю, КАК это сделать, но я не знаю, ЕСЛИ я должен это сделать.
- Какие проблемы с производительностью (если есть)
- Случается ли что-то странное, например, изображения загружаются только последовательно (может быть, именно так в настоящее время и работает HTML, я не уверен - здесь я вижу свое невежество).
- Все, что вы можете придумать.
Надеюсь, все это имеет смысл!
Спасибо,
Dan.
UPDATE
ОК - давайте определимся:
Какое влияние на производительность оказывает использование этого типа метода для обслуживания всех изображений в MVC 3 с использованием потока памяти? Примечание: URL-адрес изображения будет GenericFetchImage / image1 (и просто для простоты - все мои изображения в формате JPEG).
public FileStreamResult GenericFetchImage(string RouteValueRefToImage)
{
// Create a new memory stream object
MemoryStream ms = new MemoryStream();
// Go get image from file location
ms = GetImageAndPutIntoMemoryStream(RouteValueRefToImage);
// return the output as a file
return new FileStreamResult(ms, "image/jpeg");
}
Я знаю, что этот метод работает, потому что я использую его для динамического создания изображения на основе значения сеанса для изображения с изображением капчи. Это довольно опрятно - но я хотел бы использовать этот метод для всего поиска изображения.
Полагаю, мне интересно в приведенном выше примере, нормально ли это делать или требуется больше обработки, и если да, то сколько? Например, если количество посетителей умножится, например, на 1000, будет ли сервер обременен обработкой при доставке изображений ..
СПАСИБО!