Простой HTTP-сервер для загрузки файлов

У меня есть люди, которые хотят присылать мне файлы размером от 500 МБ до 3 ГБ. Мне нужен простой сервер, который я могу настроить за nginx, чтобы у них был простой интерфейс загрузки файлов.

Требования:

  • Простая форма загрузки файлов
  • Возможность запуска через nginx в качестве обратного прокси (возможность установить пользовательский порт прослушивания в порядке)
  • Возможность получать файлы размером до 4 ГБ
  • Работает на Ubuntu Linux
  • Открытый исходный код

Было бы здорово:

  • Полоса прогресса в форме загрузки
  • Расчетное время, оставшееся до завершения загрузки
  • Защищено паролем (если нет, то могу сделать это в конфиге nginx)
  • Ограничения на общее используемое пространство и ограничение на файл
  • Хранит файлы на Amazon S3
  • Использует Ruby on Rails

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

Я нашел простой прием, однако кажется, что обновления пакетов, от которых он зависит, сломали его, и я недостаточно знаю о Node.js, чтобы исправить это. Похоже проект заброшен.

Ответы (3)

Ну у меня были похожие требования. В итоге использовал Wordpress с плагином для загрузки файлов . Это было просто и быстро настроить.

поиск сервера загрузки http на github я нашел

  • Tallguy297/SimpleHTTPServerWithUpload
    • успешно протестировано на python3
    • неизвестная поддержка загрузки больших файлов
    • будет слушать на всех интерфейсах по умолчанию, позволяет установить --bind <host> <port>в CLI
  • jfalken/s3_https_upload_portal
    • соответствует критерию «Хранит файлы на Amazon S3»

более общий:

Хотя это немного раздуто , если единственное, что вам нужно, это загрузка, я в конечном итоге использовал для этого Nextcloud ; Вы можете сделать это в nextcloud, создав папку и настроив ссылку общего доступа для этой папки с разрешениями, установленными на «Только загрузка» или «Редактировать».

Немного уменьшив масштаб и технически не отвечая на вопрос, отправка файлов также может быть выполнена с помощью Web Wormhole . Он использует WebTorrents для установления P2P-соединения, что означает, что должны присутствовать оба «конца» (другая сторона должна отправить вам файл, пока у вас открыта веб-страница), но вам не нужно платить третьей стороне за пропускную способность или временное хранилище (будь то с рекламой и отслеживанием или с ежемесячной оплатой).