Сегментированная загрузка по FTP
Как я могу загрузить файл в FTP сегментированным способом? Есть ли инструмент / библиотека с открытым исходным кодом, чтобы я мог его использовать? Есть ли какие-либо изменения на стороне сервера, необходимые для объединения загрузок? В настоящее время я использую vsftpd.
1 ответ
В первую очередь следует учитывать, что сегментированные переводы не считаются хорошим поведением граждан. (т. е. вы играете в систему, настраивая несколько загрузок по общей ссылке, получая больше, чем ваша справедливая доля полосы пропускания) Таким образом, определения протокола не поддерживают специально сегментированную загрузку. (Или скачайте, если на то пошло) Резюме да.
Сегментированная ЗАГРУЗКА - это взлом некоторых инструментов, которые используют функцию RESUME протокола для одновременной передачи разных частей одного и того же файла.. это поведение имеет "НЕСТАНДАРТНЫЙ" характер, а не цель спецификации протокола.
Сегментированная ЗАГРУЗКА возможна, но клиент И сервер ftpd (или любой другой сервер протокола, который вы используете) должны поддерживать этот НЕТ-СТАНДАРТ и осуждать реализацию.
Опять же, это не поддерживается никакими стандартами, поскольку такое плохое поведение не поощряется открытым стандартом.
ОДНАКО вы найдете такие инструменты, как lftp, которые поддерживают сегментированные загрузки ftp. Но в настоящее время я не встречал реализации сегментированной загрузки, в которой использовались бы общие открытые протоколы, такие как ftp.
Я нашел инструмент udp на основе java (Custom open source), который сделал это, но udp нуждается в резервном варианте tcp, если вам нужна надежность в Интернете. (UDP сбрасывается некоторыми интернет-шлюзами)
В протоколе FTP вы можете осуществить передачу по частям, используя REST
командование
REST
Команда определяет смещение в файле, с которого начинается передача. Затем вы передаете столько байтов, сколько хотите. И тогда вы можете перезапустить передачу еще раз с дальнейшим смещением.
Сервер vsftpd поддерживает REST
команда.