Как можно было бы конвертировать с FTP на SFTP в Perl-скрипте?
Вопрос
У меня есть существующий Perl-скрипт, который использует объект FTP для отправки пары файлов в окно AIX.Я только что обнаружил, что наш Linux-бокс не поддерживает FTP.Он действительно поддерживает SFTP.Какие шаги я должен выполнить, чтобы преобразовать мой скрипт для использования SFTP?
Решение
Ваш текущий скрипт, вероятно, использует Сеть::FTP модуль.Вам понадобится Сеть::SFTP модуль и его зависимости от CPAN.Вы можете даже просто запустить новый скрипт, используя существующий в качестве руководства.Однако логика здесь та же самая.Подключайтесь, отправляйте и отключайтесь.
Другие советы
Я действительно делал нечто подобное.Но это было сделано для подготовки любого текущего 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
.