пятница, 13 ноября 2009 г.

Делаем файлообменник [1: Планирование]

[Горбачёв]
Вступление
Что-то у меня в последнее время настроение заняться чем-то общественно-полезным. Пусть это будет цикл постов про создание файлообменника.

Определимся с целью
Должен получится сервис, похожий на YouSendIt.com. Вот так кратенько и сформулировал все требования к функционалу:)
Немного разверну - пользователь может загрузить файл и указать эл.почту (или несколько), на которую придёт ссылка на скачивание файла. Получивший ссылку человек может скачать файл себе на комп. Всё без регистраций и прочих сложностей.

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

После принятия файла нужно отослать по указанным адресам письма со ссылкой на страницу отдачи файла.

С отправлением вроде больше никаких сложностей не будет.

Что нужно для приёма? Допустим, мы хотим ограничить скорость скачивания (чтобы все у всех пользователей были равные возможности:)) и количество скачиваний. С первой задачей можно справиться настройкой веб сервера (nginx это умеет, насколько я помню). А вот со второй так просто не прокатит. Нужно отдавать файл самостоятельно - т.е. через скрипт. При каждой отдаче он будет обновлять в БД время последней отдачи и количество отдач. А потом уже отдавать файл. Ещё один плюс отдачи через скрипт - если мы захотим сделать защиту файла паролем - это легко можно устроить.

Вот и определились с задачами
  • Страница с формой загрузки + Индикатор загрузки
  • Отправка писем
  • Скрипт на отдачу

В следующей серии подробнее рассмотрим работу индикатора загрузки.
Реклама в бомжеленте.

Помогите детям!

[http://blog.rumoneybook.net/2009/11/1.html]