Должен ли я хранить изображения с моими профилями (поставщик профиля sql)? - PullRequest
0 голосов
/ 01 сентября 2009

Я занимаюсь разработкой веб-приложения для интрасети в asp.net, в котором есть требование для хранения изображений профиля пользователя.

@ edit: веб-приложение должно работать на двух разных веб-серверах одновременно.

Мой вопрос: каков наилучший подход? Сохранение фотографии с профилем (я использую SqlProfileProvider) или загрузка ее в файловую систему и просто сохранение ссылки в профиле?

Я понимаю разницу в производительности от одной операции к другой, но моя интрасеть будет использоваться несколькими сотнями пользователей, и мне очень нравится хранить все данные в одном месте (например, для резервного копирования данных проще).

Если предположить, что данные будут храниться в базе данных, есть еще два вопроса:

а) какой тип я должен использовать для сохранения фотографий? байт [] ???

б) я должен создать обработчик для отображения изображения, или есть более простой подход?

Ответы [ 3 ]

2 голосов
/ 01 сентября 2009

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

1 голос
/ 01 сентября 2009

В настоящее время я использую поле Image в своей базе данных для хранения изображений, однако, глядя на предупреждение, прилагаемое к этой документации , я думаю, мне следует перейти к VarBinary.

Затем я использую HttpHandler для обработки изображений в соответствии с запросом (хотя в последней версии моего сайта также имеется обработчик действий файла MVC на контроллере изображений, который делает то же самое).

Пример моего обработчика можно увидеть в этом ответе:

Как узнать, какое изображение было запрошено.

0 голосов
/ 01 сентября 2009

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

Зачем пытаться абстрагироваться от файловой системы вместе со всем проводным трафиком между IIS и MSSQL, накладными расходами кода и т. Д., Чтобы избежать резервного копирования папки?

...