簡體   English   中英

如何使用 Java 將存儲在遠程 SFTP 服務器中的文件復制到同一遠程服務器中的另一個文件夾?

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

我一直在嘗試將遠程服務器中的幾個選定文件(在執行了幾次檢查之后)復制到同一個遠程服務器,使用:

File localFile = new File(srcPath);
sftpChannel.put(localFile.getAbsolutePath(),localFile.getName());

我什至嘗試使用get()方法將這些選定的文件復制到我的本地計算機。

有人可以幫忙嗎?

核心 SFTP 協議不支持復制遠程文件。

協議有copy-file / copy-data擴展草案。 但只有少數 SFTP 服務器支持這些。 在最廣泛使用的 OpenSSH SFTP 服務器中,只有最近的9.0 版本才支持它。 其他服務器例如ProFTPD mod_sftp和 Bitvise SFTP 服務器。

JSch 庫不支持擴展。

備擇方案:

  • 如果您有 shell 訪問權限,請打開“exec”通道,並使用 shell cp命令(或服務器操作系統的等效命令)。
    請參閱Exec.java示例
  • 否則,您唯一的選擇是將文件下載到本地臨時位置並將其副本上傳回不同的/目標遠程目錄。 使用流,以避免臨時文件。

另請參閱如何使用 SFTP 將文件復制/復制到另一個目錄?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM