Загрузка очень больших файлов - PullRequest
1 голос
/ 07 октября 2009

Я ищу способ загрузки очень больших файлов (например, 5 ГБ или более) через веб-интерфейс. Система языка / сервера может быть выбрана. Похоже, что POST-запросы не работают, поскольку внутренний указатель файлов браузера обрабатывает только файлы размером до 2 ГБ. Другие варианты будут, например, Java-апплет, FTP-запрос (например, сделанный библиотекой Javascript) или все, что может сделать это надежно.

Любые идеи приветствуются.

Ответы [ 3 ]

3 голосов
/ 07 октября 2009

Я бы здесь такую ​​же задачу; мы закончили с клиентским приложением Silverlight, которое выполняет следующие действия:

  • Позволяет пользователю выбрать один или несколько файлов
  • Для каждого файла
    • Разбейте его на небольшие куски данных (всего несколько килобайт)
    • Сжать данные чанка с помощью gzip
    • Создайте контрольную сумму и отправьте ее веб-службе
    • На стороне сервера проверьте контрольную сумму
    • Создать / Открыть частичный файл
    • Добавить несжатые данные в конец
    • Отчет о прогрессе с помощью индикатора выполнения и запуска событий Javascript

Пока что работает как шарм.

2 голосов
/ 07 октября 2009

Просто мысль ... HTTP не подходит для передачи данных такого размера.

Хотя это может сработать, но, скорее всего, оно потерпит неудачу и его будет сложно возобновить.

FTP звучит более многообещающе, но гигабайтные загрузки его подталкивают.

Bittorrent обрабатывает этот размер передачи, но это целая другая история.

2 голосов
/ 07 октября 2009

Все, что работает внутри браузера, не будет работать, потому что оно будет использовать тот же файловый API. Таким образом, вы можете выбрать автономное приложение, апплет или, может быть, Flash (чего я не знаю).

Предлагаю попробовать апплет и commons-fileupload .

...