Использовать FXP в Python - PullRequest
1 голос
/ 16 апреля 2020

Я создал сценарий Python, который копирует файл с FTP-сервера A на другой FTP-серверB при возникновении определенного условия.

В настоящее время копирование работает следующим образом:

ServerA -> tmp (temporary folder in the script) -> ServerB

Я хочу обновить сценарий и удалить папку tmp, чтобы получить прямую копию с ServerA на ServerB.

Я видел, что этот процесс можно выполнить с использованием протокола FXP, но не могу найти хорошее руководство или документация по его использованию с Python (единственное, что я нашел, это: https://ftpext.readthedocs.io/en/latest/index.html).

Может кто-нибудь помочь мне разобраться, как это работает ? Или, конечно, есть лучший способ сделать это. Цель - не нужна временная площадка для постановки.

1 Ответ

1 голос
/ 16 апреля 2020

При использовании класса FTPExt код должен выглядеть следующим образом:

source = FTPExt("source.example.com", 21, "source_user", "source_pass")
target = FTP("target.example.com", "target_user", "target_pass")

source.fxp_to("/source/path/file", target, "/target/path/file")

Хотя, если вам не нужны какие-либо необычные функции, вам не нужен FTPExt, есть ftpcp в ftplib, который делает то же самое, что и FTPExt.fxp_to:

ftpcp(source, "/source/path/file", target, "/target/path/file")

Но! - Большинство FTP-серверов не поддерживают FXP. Знаете ли вы, если оба ваших сервера делают? Вы должны выяснить, прежде чем пытаться реализовать это. - Если ваши серверы не поддерживают FXP, вы все равно можете обойтись без промежуточного файла путем потоковой передачи из одного соединения в другое.

...