Как правильно организовать медиафайлы и папки в Интернете

Я создаю свое веб-приложение, и мне нужно ваше предложение по организации медиафайлов и папок. Итак, сейчас у меня есть такая структура:

В корне у меня есть папка images/myappName/, где я буду сохранять все файлы, связанные с этим приложением. В этом приложении будут разные сообщения, и в каждом сообщении может быть несколько изображений (от 6 до 10), поэтому я не знаю, как правильно сделать часть сохранения. У меня есть два варианта:

1) Я могу создать каждую папку для каждого сообщения, назвать их своим идентификатором в images/myappName/ и сохранить изображения для каждого сообщения в своей папке, например, если идентификатор сообщения равен 1154, папка контейнера изображений будет images/myappName/1154/example .jpg

2) Сохраните все изображения в одном месте, но их имя будет начинаться с идентификатора. Что-то вроде идентификатора сообщения 1154, имена изображений будут images/myappName/1154_example.jpg

Так что посоветуете ребята? Какой вариант лучше, какие минусы есть у каждого варианта и что еще можете порекомендовать?


person Volter    schedule 16.02.2014    source источник


Ответы (1)


если ваше приложение будет хранить пользовательские изображения и файлы, вам следует подумать о сохранении их в БД в виде данных LOB вместо использования файловой системы, поэтому, если однажды вы решите кластеризовать свое приложение, оно сможет масштабироваться.

Обновление. Если вы не хотите хранить большие двоичные объекты, вы можете использовать лучшее из обоих миров, сохраняя метаданные файлов в базе данных. Таким образом, вы можете свободно добавлять теги к своим файлам, не беспокоясь о том, как эти файлы должны быть физически организованы в файловой системе.

person Leo    schedule 16.02.2014
comment
WoW, я никогда не слышал о такой идее, мне это интересно. Другое мое приложение в том же домене даст пользователям возможность загружать и сохранять изображения, но в этом приложении только администраторы могут загружать и хранить изображения для сообщений. Итак, для LOB вы рекомендуете использовать другую базу данных mysql или ту же базу данных, но другую таблицу? - person Volter; 16.02.2014
comment
все яйца в одной корзине = вам придется остановить все ваши приложения, если что-то пойдет не так со столом ;-) - person Leo; 16.02.2014
comment
все яйца в одной корзине -> Я думаю, вы имеете в виду это для BLOB, но если я решу использовать файловую систему, какой вариант вы порекомендуете из приведенного выше: одна и та же папка или разные папки для каждого сообщения? - person Volter; 16.02.2014
comment
если у вас есть один экземпляр для каждого приложения, вы можете отключить каждый экземпляр, когда вам нужно остановить каждое приложение для обслуживания. С другой стороны, если вы храните все в файловой системе, это одна корзина, и вы все потеряете. И масштабировать в кластерной среде будет сложнее. - person Leo; 16.02.2014
comment
даже базы данных, которые можно кластеризовать, сводя к минимуму время простоя. Для файловой системы думаю хуже - person Leo; 16.02.2014
comment
Спасибо за помощь, я нашел эту статью в stackoverflow, я думаю, что она описывает преимущества и недостатки использования BLOB stackoverflow.com/questions/14215701/< /а> - person Volter; 16.02.2014
comment
возможно, вы могли бы добавить больше информации в свой вопрос, чтобы мы могли точно знать, что вы ищете. какое приложение вы разрабатываете? - person Leo; 16.02.2014