How do I copy files stored in a remote SFTP server to another folder in the same remote server using Java?

后端 未结 1 958
后悔当初
后悔当初 2021-01-16 11:32

I have been trying to copy few selected files (after performing few checks), in a remote server to the same remote server using:

File localFile = new File(sr         


        
1条回答
  •  醉梦人生
    2021-01-16 12:26

    A core SFTP protocol does not support duplicating a remote file.

    There's draft of copy-file extension to the protocol, but that's supported by only few SFTP servers (ProFTPD/mod_sftp and Bitvise SFTP server for example).

    The JSch library does not support the copy-file extension either.

    Alternatives:

    • If you have a shell access, open an "exec" channel, and use shell cp command (or equivalent command for your server's OS).
      See Exec.java example.
    • Otherwise, your only option is to download the file to a local temporary location and upload its copy back to a different/target remote directory. Or use streams, to avoid a temporary file.

    See also How can I copy/duplicate a file to another directory using SFTP?

    0 讨论(0)
提交回复
热议问题