Я знаю, что где-то в истории интернета это где-то задавали, но я просто не могу придумать правильную терминологию, чтобы получить ответ, который мне нужен.Этот вопрос близок: Каков наилучший способ хранения загруженных пользователями файлов на веб-сайте? Но мне нужно немного больше деталей.
По сути, как вы должны эффективно управлять файламичто загрузили пользователи, такие как изображение профиля?То, что я хочу знать, - это некоторые «лучшие практики», касающиеся того, ГДЕ создать структуру каталогов.
Второй ответ на поставленный выше вопрос предлагает некоторые варианты, такие как хранение их вне Интернета.root, о чем я и думал вначале.Но потом я начал думать ...
1) Как мы сохраняем пути в базе данных?Абсолютное?Относительный? У каждого пользователя есть столбец для "ProfilePicPath".Что если мы хотим полностью перегрузить весь проект с одного сервера на другой, и по какой-то причине мы не можем поместить файлы в одно и то же место на новом сервере?Каждая ссылка будет неработоспособной.
2) Как с этим следует обращаться с точки зрения безопасности? Скажем, у нас развернуто наше веб-приложение в виде C: \ website \ site1, но мы хранимКартинки профиля пользователя в виде C: \ usercontent \ profilepictures \?На странице, где мы загружаем изображение профиля, как мы можем безопасно получить к нему программный доступ в коде?Мы не хотим помещать их как C: \ website \ site1 \ usercontent \ profilepictures \, верно?Я не фанат введения абсолютного пути в базу данных, и я также не хочу жестко задавать путь в любом месте кода позади.
Мы изначально ДЕЙСТВИТЕЛЬНО пробовали файлы внутри веб-проекта, но потом это стало своего рода риском, потому что эти пользовательские файлы были частью нашего проекта.Одна неправильная копия / вставка при обновлении / изменении сайта, и мы могли бы перезаписать файл, загруженный пользователем с тех пор, как мы в последний раз извлекли проект из хранилища, и т. Д. Это было огромной проблемой, и весь сценарий просто кричал мне "ты идиот, ты все делаешь неправильно ... "но я просто не могу найти правильного руководства, чтобы делать это" правильно ".
Просто чтобы быть ясно, наши потребности минимальны -- это всего лишь небольшой проект для внутреннего использования, не более 30 пользователей, и все это должно содержаться на одном сервере IIS 7.