Мы в процессе создания системы, которая позволяет пользователям загружать несколько изображений и видео на наши серверы.Управление активами: что является лучшим способом организовать созданные пользователем файлы на веб-сервере?
Команда, с которой я работаю, решила сохранить все активы, принадлежащие пользователю, в папке с именем, используя уникальный идентификатор пользователя. Эта папка, в свою очередь, будет подпапкой нашей основной папки ресурсов на файловом сервере.
Структура файла они предложили следующим образом:
[asset_root]/userid1/assets1
[asset_root]/userid1/assets2
[asset_root]/userid2/assets1
[asset_root]/userid2/assets2
etc.
Мы ожидаем тысячи или, возможно, миллион + пользователей в то время жизни этой системы.
Я всегда думал, что это не очень хорошая идея, чтобы иметь много вложенных папок в одном месте и предложил год/месяц/день подход следующим образом:
[asset_root]/2010/11/04/userid1/assets1
[asset_root]/2010/11/04/userid1/assets2
[asset_root]/2010/11/04/userid2/assets1
[asset_root]/2010/11/04/userid2/assets2
etc.
Кто-нибудь знает, какой из выше подходы будут лучше подходят для этого много активов? Есть ли лучший способ организовать изображения/видео на сервере?
Система, о которой идет речь, будет Windows IIS 7.5 с SAN.
Большое спасибо заранее.
Спасибо за быстрый ответ. Использование uuid и разметки кажется отличной идеей! Одной из причин, по которой команда хочет пойти с их решением, является то, что нет необходимости хранить пути к файлам в базе данных, если все пользовательские активы находятся в одной папке, но, очевидно, имеют свои ограничения. – purplemass
Если вы не храните пути в базе данных, я думаю, вы пожалеете об этом. В конце концов вам нужно будет найти, сколько места используется каждым пользователем, получить статистику по использованию или любой из миллиона вещей. Вы не хотите проходить через файловую систему, чтобы определить, должна ли отображаться ссылка «Файлы» на странице профиля пользователя. –
Мы пошли с решением, основанным на вашем ответе: каждый идентификатор пользователя - это 10-значный номер, поэтому папка, созданная для пользователя 1234567890: [asset_root]/1234/567/890 /. Что касается вашей точки при сохранении путей в базе данных: мы сохраняем логическое значение, чтобы показать, был ли актив сохранен или нет, - подумал, что это может быть более эффективным в долгосрочной перспективе и должно быть достаточным для получения статистики и т. Д. – purplemass