SSHJ SFTP文件下载

sshj - SSHv2 library for Java

Maven工程依赖

<dependency>
  <groupId>com.hierynomus</groupId>
  <artifactId>sshj</artifactId>
  <version>0.23.0</version>
</dependency>
示例

1. 从SFTP 获取文件返回输出流

public static void main(String[] args) throws IOException {
    	final SSHClient ssh = new SSHClient();
        try {
        	HostKeyVerifier hostKeyVerifier = new HostKeyVerifier()
        	{
				
				@Override
				public boolean verify(String arg0, int arg1, PublicKey k) {
					System.out.println(arg0);
					System.out.println(arg1);
					System.out.println(k);
					// TODO Auto-generated method stub
					System.out.println("###" + SecurityUtils.getFingerprint(k));
//					return SecurityUtils.getFingerprint(k).equals("27:6d:36:6c:49:a4:0d:5b:fb:f8:19:45:9b:43:52:1f");
					return true;
				}
			};
        	ssh.addHostKeyVerifier(hostKeyVerifier);
        	ssh.loadKnownHosts();
        	ssh.connect(host, port);
            ssh.authPassword(username, password);
            System.out.println(ssh.isAuthenticated());
            final SFTPClient sftp = ssh.newSFTPClient();
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            try {
                InMemoryDestFile inMemoryDestFile = new InMemoryDestFile() {
					
					@Override
					public OutputStream getOutputStream() throws IOException {
						
						return outputStream;
					}
				};
				
				long size = sftp.size("/files/05_20180125.txt");
				System.out.println("Size:" + size);
				List<RemoteResourceInfo> ls = sftp.ls("/files/");
				for(RemoteResourceInfo rri : ls) {
					if(rri.getName().equals("000020000000000005_20180125.txt")) {
						System.out.println("Meach Success");
						sftp.get("/files/000020000000000005_20180125.txt", inMemoryDestFile);
					} else {
						
					}
					System.out.println("路径:" + rri.getPath() + " P " + rri.getParent() + " # " + rri.getAttributes());
				}
				
                
                
            } finally {
            	outputStream.close();
                sftp.close();
                
            }
        } finally {
            ssh.disconnect();
        }
	}




猜你喜欢

转载自blog.csdn.net/u010612373/article/details/79231714
今日推荐