Хранение загруженного контента на сайте - PullRequest
1 голос
/ 09 апреля 2010

В течение последних 5 лет моим типичным решением для хранения выгруженных файлов (изображений, видео, документов и т. Д.) Было выбрасывание всего в папку «upload» и присвоение ей уникального имени.

Я пытаюсь усовершенствовать свои методы хранения загруженного контента, и мне просто интересно, какие другие методы используются / предпочтительны.

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

Ответы [ 2 ]

0 голосов
/ 09 апреля 2010

Рассмотрим виртуальную файловую систему, такую ​​как SolFS . Вот как это может решить вашу задачу:

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

Если у вас много, вероятно, разовых посетителей, вы можете иметь один или несколько контейнеров с файлами, сгруппированными по дате загрузки.

Виртуальная файловая система позволяет сохранять исходные имена файлов либо в качестве реальных имен файлов, либо в качестве метаданных для сохраняемых файлов.

Далее вы можете сжать данные, хранящиеся в контейнере.

0 голосов
/ 09 апреля 2010

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

С точки зрения хранения файлов на диске вопрос состоит в том, сколько, какие шаблоны доступа и какую ОС / платформу вы используете. Для некоторых людей может быть даже выгодно хранить файлы в базе данных.

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

...