Несколько лет назад я работал над системой электронного управления документами, и мы сделали в значительной степени то, что предлагали Gamecat и wic.
То есть назначьте каждому изображению уникальный идентификатор и используйте его для получения относительного пути к файлу изображения. Мы использовали MOD, аналогичный тому, что предлагал wic, но мы разрешили 1024 папки / файла на каждом уровне, с 3 уровнями, поэтому мы могли поддерживать файлы размером 1 ГБ.
Однако мы удалили расширение из файлов. Записи БД содержали MIME-тип, поэтому расширение не требовалось.
Я бы не рекомендовал хранить в записи БД полный URL, только ID изображения. Если вы сохраняете URL-адрес, вы не можете переместить или реструктурировать свое хранилище без преобразования вашей БД. Относительный URL-адрес был бы приемлемым, поскольку таким образом вы можете по крайней мере перемещать репозиторий изображений, но вы получите больше гибкости, если просто сохраните идентификатор и получите URL-адрес.
Кроме того, я бы не рекомендовал разрешать прямые ссылки на ваши файлы изображений из Интернета. Вместо этого предоставьте URL-адрес серверной программы (например, сервлета Java) с идентификатором изображения, указанным в URL-запросе (http://url.com/GetImage?imageID=1234
).
Сервлет может использовать этот идентификатор для поиска записи БД, определения типа MIME, определения фактического местоположения, проверки ограничений безопасности, ведения журнала и т. Д.
person
Clayton
schedule
15.01.2009