SFTP进程生成器
SFTP Processbuilder
我必须从 Java 调用 unix 命令并且我必须使用 ProcessBuilder。我想使用密钥身份验证通过 SFTP 登录,我想将文件从本地目录 SFTP 到远程位置。
ProcessBuilder pb = new ProcessBuilder("sftp","-oIdentityFile=privateKey","-b","commands.txt","username@hostname");
commands.txt中的内容是
put localFileDirectory remoteDirectory
exit
有什么方法可以在 processbuilder 中提供 localFileDirectory 和 remoteDirectory 吗?这些应该是动态的,我必须给它 processbuilder。
两种可能的方法:
请改用 scp
命令。它执行相同的基于 ssh 的文件传输,但允许您在命令行上指定源和目标。
ProcessBuilder pb = new ProcessBuilder("scp", "-i privateKey", "-r",
"localFileDirectory", "username@hostname:remoteDirectory");
-r
用于 "recursive",如果您要传输整个文件夹则需要。如果您只是传输单个文件,则不需要。
从您的 Java 代码生成 commands.txt
文件。
我必须从 Java 调用 unix 命令并且我必须使用 ProcessBuilder。我想使用密钥身份验证通过 SFTP 登录,我想将文件从本地目录 SFTP 到远程位置。
ProcessBuilder pb = new ProcessBuilder("sftp","-oIdentityFile=privateKey","-b","commands.txt","username@hostname");
commands.txt中的内容是
put localFileDirectory remoteDirectory
exit
有什么方法可以在 processbuilder 中提供 localFileDirectory 和 remoteDirectory 吗?这些应该是动态的,我必须给它 processbuilder。
两种可能的方法:
请改用
scp
命令。它执行相同的基于 ssh 的文件传输,但允许您在命令行上指定源和目标。ProcessBuilder pb = new ProcessBuilder("scp", "-i privateKey", "-r", "localFileDirectory", "username@hostname:remoteDirectory");
-r
用于 "recursive",如果您要传输整个文件夹则需要。如果您只是传输单个文件,则不需要。从您的 Java 代码生成
commands.txt
文件。