2015-10-02 2 views
0

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

  1. Возможность загрузки файла в систему. Он не должен блокировать, пользователь должен иметь возможность просматривать другие страницы веб-сайта, пока загрузка продолжается. После завершения загрузки пользователь получит уведомление о загрузке.
  2. Пользователь должен иметь возможность просматривать свои загруженные файлы на веб-сайте.
  3. Возможность редактирования файлов в веб-браузерах с использованием сторонних API
  4. Число пользователей составит около 5000, и все они могут загружать файлы одновременно, поэтому производительность не должна уменьшаться.
  5. Где я должен хранить эти файлы? Как убедиться, что чтение и запись файлов в этом каталоге должны обрабатывать параллельный запрос пользователя?

Учитывая вышеуказанные баллы. Какой должен быть лучший способ архитектовать этот сайт?

Существуют ли существующие веб-фреймворки, которые играют вместе с такими типами архитектуры, как rails, express?

+0

Относительно хранения файлов я могу посоветовать вам НЕ использовать БД. Хешируйте содержимое файла и используйте его как имя файла хранилища. Персистировать исходное имя файла, хэш-значение, путь хранения и идентификатор пользователя в любом БД. Также вы должны прочитать о ограничениях размера загрузки файлов. – jean

ответ

0

Если вы хотите иметь возможность просматривать сайт во время загрузки файла, вам нужно использовать что-то на передней панели, которое переопределяет теги привязки и асинхронно выбирает следующую страницу - может быть библиотека или что-то еще чтобы выполнить это, но вам должно быть легко реализовать себя с помощью jQuery.

Чтобы это стало проще (и для и многие другие причины), вы почти наверняка захотите структурировать свой сайт с помощью архитектуры MVC (Model View Controller). Rails структурирована таким образом, как и почти любая веб-инфраструктура. Не похоже, что то, что вы описываете, лучше подходит для Rails поверх PHP или Python и т. Д., Поэтому просто используйте любой язык или структуру, в которой вы (или ваши разработчики) чувствуете себя наиболее комфортно. Возможно, вам захочется провести некоторое исследование доступных плагинов для редактирования файлов (это действительно зависит от того, какой тип файлов вы хотите отредактировать и как) и используя их, чтобы повлиять на ваше решение, на каком языке выбрать.

Что касается хранения файлов на вашем сервере, любой логической системы должно быть достаточно. Возможно:

/username/year/month/day/myFile.txt 

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

+0

. Прочитав свой первый абзац, я думаю, что имеет смысл построить единую веб-страницу? –

+0

Да, в значительной степени. Возможно, вы также захотите рассмотреть пользователей, у которых есть Javascript. – Michael

Смежные вопросы