Ответ 1
Все крупные веб-сайты не сохраняют изображения в базе данных, они сохраняют их на диске. Они сохраняют ссылку на позицию изображения в таблице. И затем ссылку оттуда.
Почему? Производительность.
Вытягивание тяжелого контента из базы данных является огромным узким местом производительности. И базы данных не масштабируются горизонтально так хорошо, поэтому это будет означать еще большую проблему. На всех крупных сайтах используются статические контентные фермы для работы со статическим контентом, таким как изображения. Эти серверы, которые не заботятся о вашей личности.
Как они сохраняют фотографии действительно личными, о которых вы могли бы спросить? Они этого не делают.
Ссылка на картинку сама по себе является адресом и паролем. Например, возьмите Facebook. Если я сохраню личную фотографию в своей учетной записи, вы не сможете ее открыть. Но, если у вас есть правильный адрес, вы можете.
Это изображение личное. Обратите внимание на имя файла 10400121_87110566301_7482172_n.jpg
(facebook меняет URL-адрес время от времени, так что ссылка может быть нарушена)
Он не является последовательным. Единственный способ получить изображение - узнать его адрес.
На основе предыдущей фотографии пользователя вы не можете угадать следующий.
У этого есть огромная энтропия, так что, даже если вы начнете принимать произвольные дикие догадки, у вас будет множество неудач, и, если вы дойдете до картины, вы не сможете оттуда осознать личность владельцев, само по себе является защитой в анонимности.
Изменить (почему вы не должны хранить изображения в папке "имя пользователя":
После вашего редактирования стало ясно, что вы намерены размещать файлы на диске, а не в базе данных. Это изменение охватывает новый сценарий.
Несмотря на то, что ваша логика (создание папки для каждого пользователя) более упорядочена, она создает проблемы при запуске множества пользователей и многих изображений. Представьте, что на ваших серверах есть 1T дисковое пространство. И позволяет также предположить, что 1T более или менее точна с нагрузкой, которую может обрабатывать сервер.
Теперь у вас есть 11 пользователей, предположим, что они начинают загрузку в одно и то же время, и каждый загрузит более 100 ГБ файлов. Когда они достигают 91 ГБ каждый сервер заполнен, и вы должны начать хранить изображения на другом сервере. Если эта структура пользователя/папки соблюдается, вам придется выбрать одного из пользователей и перенести все свои данные на другой сервер. Кроме того, это делает жесткий лимит для пользователя, который не может загружать более 1 т в файлы.
Должен ли я хранить все файлы в одной папке, а??
Нет, большие сайты обычно хранят файлы в последовательных папках (/000001/,/000002/и т.д.), Имеющих x определенное количество файлов в папке. Это в основном связано с проблемами производительности файловой системы.
Подробнее о сколько файлов в каталоге слишком много?