Я работал над чем-то похожим (http://www.parti.cl, который предоставляет значки в качестве службы), который использовал следующий подход:
- отдельный сервис изображений, работа которого заключается только в предоставлении изображений
- изображения идентифицируются путем URL-адреса.
- другие службы затем генерируют HTML, который включает соответствующий путь в качестве атрибута
src
для изображений. - путь может содержать информацию, котораяиспользуется для фильтрации реферера, если это важно (например, если у вас есть несколько сайтов, которым вы хотите предоставить изображения, то у вас будет таблица, которая имеет отношение «один ко многим» между идентификатором / именем изображения исайты, которые могут запросить его).
- путь также может включать информацию о версиях.Например, вы можете использовать схему типа http://images.example.com/short-name/version, где «короткое имя» идентифицирует изображение, а «версия» позволяет вам управлять несколькими версиями.
Вы можете хранить изображениякак двоичные двоичные объекты базы данных (прекрасно работает для небольших изображений и для изображений, которые генерируются динамически на основе URL-адреса) или в файловой системе.Но как только вы начинаете делать такие вещи, как использование базы данных для хранения ссылок, проще всего динамически вернуть изображение (т. Е. У вас есть некоторый код, который копирует изображение из любого места в объект ответа HTTP), а не полагаться на статический сервер.
Наконец, по возможности используйте кеширование, чтобы уменьшить нагрузку (как кеш HTTP, так и внутри вашего приложения), но будьте осторожны, чтобы правильно обрабатывать запросы на проверку кеша, чтобы при смене изображения быстро распространялся новый.
PS Помните, что вам также потребуется поддержка SSL, если изображения должны быть включены в защищенные сайты.