Каков наилучший способ создать галерею, управляемую пользователем, на моем сайте asp.net mvc? - PullRequest
1 голос
/ 05 ноября 2010

У меня есть веб-сайт, где одна страница представляет собой набор статических картинок.пользователи хотят иметь возможность загружать свои собственные картинки и показывать их вместо статического списка.я вижу код, подобный этому, который объясняет хороший способ иметь интерфейс для загрузки картинок .я пытаюсь выяснить, следует ли мне хранить изображения в файловой системе моего веб-сервера или в базе данных SQL-сервера, или где-то еще.

есть предложения по передовой практике?

Ответы [ 2 ]

2 голосов
/ 06 ноября 2010

В примере по предложенной вами ссылке программист использует XML-файл.Это решение идеально подходит для низкочастотных сайтов и небольшого количества изображений.Но что произойдет, если два пользователя попытаются загрузить файл одновременно?Вероятно, второй пользователь получит сообщение об ошибке, поскольку файлы xml уже используются.

Я предлагаю вам сохранить изображения в файловой системе и метаданные изображений (описание, теги, геотеги ...) вдБ .

Избегайте хранения двоичных данных в дБ .Вы получите очень неэффективные дБ и очень большой размер.

0 голосов
/ 05 ноября 2010

Хранение в файловой системе проще в реализации, и вы можете воспользоваться структурой каталогов. Однако, если вам нужно что-то большее, чем простая структура найма (например, тегирование), скорее всего вам нужна база данных для индексации (может быть SQL-сервер или XML Dbs).

Вот и вторая проблема. Если вам нужна индексация, метаданные хранятся в БД, как насчет реальных данных двоичного изображения? Ввод двоичного кода в SQL прост в обслуживании, но вам нужно реализовать собственную стратегию кэширования с вашего веб-сервера (выгрузить данные изображений на локальный диск веб-сервера), чтобы избежать слишком большого трафика между web / db.

С другой стороны, вы можете просто сохранить ключ в дБ и сохранить образ на локальном диске (веб-сервера), это легко реализовать, но могут возникнуть две проблемы:

  1. Сложнее масштабировать. Представьте, что вам нужно более одного веб-сервера, поэтому синхронизация контента может быть проблемой.

  2. Индексирование файловой системы. Если вы храните файл в локальной папке, скорее всего, все файлы размещены в одной папке. Для любой файловой системы, чем больше файлов хранится в одном месте, тем медленнее они могут искать или извлекать контент из нее. Галерея изображений может увеличиваться до тысяч и миллионов файлов, это может вызвать проблемы. (Конечно, вы можете использовать некоторую стратегию для разделения хранилища, но это увеличивает сложность).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...