Есть ли какая-нибудь функция jsch ChannelSftp, работающая как команда 'cp'?

В настоящее время я работаю с jsch-0.1.41, работаю с ресурсами на удаленном сервере Linux через ChannelSftp. Я обнаружил, что нет функции, обеспечивающей функциональность, аналогичную команде оболочки "cp". Теперь я хочу скопировать файл из каталог на другой, эти два каталога и удаленный каталог на сервере Linux.

Любая неправильная точка в моей презентации, пожалуйста, укажите это. Спасибо.

1 ответ

Решение

Протокол SFTP не предлагает такой команды, и, следовательно, ChannelSftp от JSch не предлагает ее.

У вас есть два варианта:

  • Используйте комбинацию get а также putзагрузить файл и загрузить его снова. Вы можете сделать это без локального хранилища (просто подключите один из потоков к другому), но для этого все равно требуется дважды перемещать данные по сети (и дважды шифровать / дешифровать), где это не будет действительно необходимо. Используйте это только если другой способ не работает.

  • Не используйте SFTP, но используйте exec канал для выполнения команды копирования на сервере. На серверах Unix эта команда обычно называется cp, на серверах Windows скорее всего copy, (Это не будет работать, если администратор сервера каким-либо образом ограничил доступ к учетной записи только SFTP.)

Другие вопросы по тегам