Можно ли сжать все файлы внутри FTP, а затем загрузить их? Передача файлов каждый файл происходит слишком медленно. Если это возможно, есть ли документация для этого? У меня уже есть поиск в Google, но, похоже, это невозможно сделать.
Как сжать и загрузить файл через FTP в WinSCP .NET?
Ответы (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#