собирать файлы из пользователей - PullRequest
0 голосов
/ 28 октября 2009

Я ищу способы сбора файлов от клиентов. Эти клиенты имеют наше программное обеспечение, и в настоящее время мы используем FTP для сбора файлов с них. Файлы собираются из базы данных клиента, шифруются и загружаются через FTP на наш FTP-сервер. Процесс чреват разочарованием и препятствиями. Программное обеспечение часто блокируется общими брандмауэрами и часто сталкивается с трудностями с VPN и NAT (обычно помогает переключение на пассивный вместо активного).

У меня вопрос: какие еще идеи есть у людей для надежного получения программных файлов от клиентов. Большинство отправляемых файлов имеют размер <1 МБ. Однако размер одного из них составляет до 25 МБ. </p>

Я рассмотрел HTTP POST, однако, я обеспокоен тем, что файл размером 25 МБ часто переставал работать после публикации (время ожидания веб-сервера до полной загрузки файла).

Мысли

AndrewG

РЕДАКТИРОВАТЬ: Мы можем использовать любые распространенные веб-технологии. Мы используем общий хост, что может затруднить внесение изменений в центральную конфигурацию. Я знаком с PHP с точки зрения обычного использования ... но не с точки зрения настройки (написано много кода, но не слишком много для работы). Ruby on Rails также возможен ... но я бы начал с нуля. В идеале ... я ищу "веб" способ сделать это, поскольку я хотел бы в конечном итоге быть готовым перейти от установленного кода.

Ответы [ 3 ]

0 голосов
/ 28 октября 2009

Вы, вероятно, имеете в виду HTTP PUT. Это должно работать как шарм. Если у вас есть приличный веб-сервер. Но, насколько я знаю, это не перезапускается.

FTP является правильным выбором (пассивный режим, чтобы пройти через брандмауэры). Используйте FTP-сервер, который поддерживает перезапускаемые передачи, если вы часто сталкиваетесь с сбоями VPN-соединения (сети отелей очень дерьмовые :-)).

Должна поддерживаться команда FTP REST.

С http://www.nsftools.com/tips/RawFTP.htm:

Syntax: REST position

Устанавливает точку, с которой должна начинаться передача файла; полезно для возобновления прерванных переводов. Для неструктурированных файлов это просто десятичное число. Эта команда должна предшествовать команде передачи данных (только RETR или STOR); то есть оно должно следовать после любой команды PORT или PASV.

0 голосов
/ 28 октября 2009

Один из вариантов - запустить в браузере что-то, что разорвало бы загрузку на куски, что, как мы надеемся, сделало бы это более надежным. Элемент управления, который делает это, также дает некоторую обратную связь пользователю в процессе загрузки, которую вы не получите с помощью простого HTTP POST.

Быстрый Google нашел этот бесплатный Java-апплет , который делает именно это. Там будет много других бесплатных и платить за варианты, которые делают то же самое

0 голосов
/ 28 октября 2009

Исследования scp и rsync.

...