У меня есть веб-приложение Struts 1, которому нужно загружать довольно большие файлы (> 50 МБ) с клиента на сервер. В настоящее время я использую встроенный org.apache.struts.upload.DiskMultipartRequestHandler для обработки запросов HTTP POST multipart / form-data. Он работает правильно, но также очень и очень медленно, загружая со скоростью около 100 Кбайт в секунду.
Загрузка одинаковых больших файлов с сервера на клиент происходит более чем в 10 раз быстрее. Я не думаю, что это разница между скоростями загрузки и загрузки моего интернет-провайдера, потому что использование простого FTP-клиента для передачи файла на тот же сервер занимает менее 1/3 времени.
Я смотрел на замену встроенного DiskMultipartRequestHandler более новым пакетом org.apache.commons.fileupload, но я не уверен, как изменить это для создания MultipartRequestHandler, который требуется для Struts 1.
Баранд прокомментировал ниже, что в файле web.xml может быть установлен параметр 'bufferSize'. Я увеличил размер буфера до 100 Кбайт, но это не улучшило производительность. Глядя на реализацию DiskMultipartRequestHandler, я подозреваю, что его производительность может быть ограничена, потому что он читает поток по одному байту за раз, ища пограничные символы из нескольких частей.
Кто-нибудь еще использует Struts для загрузки больших файлов?
Кто-нибудь настраивал DiskMultipartRequestHandler по умолчанию, поставляемый со Struts 1?
Нужно ли быть более терпеливым при загрузке больших файлов? : -)