4

Как можно заархивировать, скачать и удалить (ZDD) файл в WinSCP?

Например, ваш локальный каталог - Desktop, а ваш удаленный каталог (тот, что находится на вашем сервере), скажем, /var/www/html и вы хотите заархивировать и загрузить определенный каталог или файл, а затем вы хотите, чтобы он был удален в тот момент, когда загрузка была завершена.



Для дальнейшего объяснения, в Linux я мог бы сделать, например:

(
zip -r /var/www/html/dr.zip /var/www/html
scp /var/www/html/dr.zip USER@IP:/location
rm /var/www/html/dr.zip
)

Мне нужна аналогичная вещь для WinSCP, но я знаю, что механизм загрузки WinSCP должен использоваться и что он отличается от утилиты Nix scp .

Мой вопрос:

Знаете ли вы, как добиться этого с WinSCP?

1 ответ1

4

Невозможно архивировать файлы по любому протоколу передачи файлов (SFTP, FTP, SCP или WebDAV). Поэтому в WinSCP такой функции нет, так как она не может быть надежно реализована.


Хотя, если у вас есть доступ к серверу в командной оболочке, вы можете использовать команду оболочки для архивирования файлов. Это фактически то, что делает пользовательская команда Tar/GZip .

Если вы хотите сделать это за один раз (zip-and-download), вам нужно будет реализовать более сложную настраиваемую команду / расширение, которая открывает собственный сеанс для загрузки. Это было бы очень похоже на файлы Pack в ZIP-архив и загрузить его пример. За исключением того, что он будет использовать Session.ExecuteCommand для выполнения zip (или аналогичного) на удаленном сервере.

Вы можете написать расширение на любом языке, который вам нравится. PowerShell - это самый доступный язык сценариев Windows с хорошей (нативной) поддержкой .NET. Хотя это можно сделать и в Bash, вы должны использовать локальный сценарий Bash (вы не можете загрузить файл с помощью удаленного сценария Bash). И нет Bash в Windows по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .