Как сжать и загрузить файл через FTP в WinSCP .NET?

Можно ли сжать все файлы внутри FTP, а затем загрузить их? Передача файлов каждый файл происходит слишком медленно. Если это возможно, есть ли документация для этого? У меня уже есть поиск в Google, но, похоже, это невозможно сделать.


person bpoom za    schedule 05.12.2019    source источник


Ответы (1)


Это вряд ли возможно.

В протоколе FTP нет API для ZIP-файлов на сервере.


Впрочем, не редкость, что кроме FTP-доступа есть еще и SSH-доступ. Если это так, вы можете подключиться к SSH и выполнить команду оболочки zip (или аналогичную) на сервере, чтобы сжать файлы.

В сборке WinSCP .NET для этого можно использовать Session.ExecuteCommand.

Если вам нужно, вы можете затем загрузить архив, используя протокол FTP (Хотя, если у вас есть доступ по SSH, у вас также будет доступ по SFTP. Тогда используйте SFTP вместо FTP.).


Некоторые (очень немногие) FTP-серверы предлагают API для выполнения произвольных команд оболочки (или других) с использованием команды SITE EXEC (или аналогичной). Но это действительно очень редко. Вы можете использовать этот API так же, как SSH выше.


Вышеизложенное основано на моем ответе на аналогичный вопрос о распаковке:
Можем ли мы разархивировать файл на FTP-сервере с помощью C#

person Martin Prikryl    schedule 05.12.2019