Как можно конвертировать из FTP в SFTP в сценарии Perl? - PullRequest
2 голосов
/ 06 февраля 2009

У меня есть существующий скрипт Perl, который использует объект FTP для отправки пары файлов в AIX. Я только что обнаружил, что наш Linux-бокс не поддерживает FTP. Это поддерживает SFTP. Какие шаги мне нужно пройти, чтобы преобразовать мой скрипт для использования SFTP?

Ответы [ 2 ]

6 голосов
/ 06 февраля 2009

Я действительно сделал что-то подобное. Но это было подготовить любой текущий сценарий FTP для запуска через SFTP, когда это необходимо.

Я создал объект-оболочку вокруг Net::SFTP, который выглядит и действует как объект Net::FTP. Поэтому все вызовы могут быть оставлены в местах с другой реализацией.

Я пошел от этого:

my $client = Net::FTP->new( Host => 'ftp.somehost.com', ... );

до

my $client = FTPClient->new( Host => 'ftp.somehost.com', ...
                           , secureFTP => 1 
                           ); 

И только что реализовал все методы, которые я использовал с Net::FTP в моем новом классе. Net::SFTP возвращает несколько различных результатов, так что вам нужно фактически обернуть функцию вместо того, чтобы просто использовать что-то вроде Class::Delegator

6 голосов
/ 06 февраля 2009

Ваш текущий скрипт, вероятно, использует модуль Net :: FTP . Вам понадобится модуль Net :: SFTP и его зависимости от CPAN. Вы можете просто запустить новый скрипт, используя существующий в качестве руководства. Логика та же, хотя. Подключение, отправка и отключение.

...