public SFTPFileTransfer(SFTPEngine engine) { super(engine.getLoggerFactory()); this.engine = engine; }
public Promise<Response, SFTPException> expectResponseTo(long requestId) { final Promise<Response, SFTPException> promise = new Promise<Response, SFTPException>("sftp / " + requestId, SFTPException.chainer, engine.getLoggerFactory()); promises.put(requestId, promise); return promise; }
protected RemoteResource(SFTPEngine requester, String path, byte[] handle) { this.requester = requester; log = requester.getLoggerFactory().getLogger(getClass()); this.path = path; this.handle = handle; }
public SFTPClient(SFTPEngine engine) { this.engine = engine; log = engine.getLoggerFactory().getLogger(getClass()); this.xfer = new SFTPFileTransfer(engine); }
public PacketReader(SFTPEngine engine) { this.engine = engine; log = engine.getLoggerFactory().getLogger(getClass()); this.in = engine.getSubsystem().getInputStream(); setName("sftp reader"); }
@Before public void setUp() throws Exception { PipedOutputStream pipedout = new PipedOutputStream(); PipedInputStream pipedin = new PipedInputStream(pipedout); dataout = new DataOutputStream(pipedout); SFTPEngine engine = Mockito.mock(SFTPEngine.class); Subsystem subsystem = Mockito.mock(Subsystem.class); Mockito.when(engine.getLoggerFactory()).thenReturn(LoggerFactory.DEFAULT); Mockito.when(engine.getSubsystem()).thenReturn(subsystem); Mockito.when(subsystem.getInputStream()).thenReturn(pipedin); reader = new PacketReader(engine); }
@Before public void setPathHelper() throws Exception { PathHelper helper = new PathHelper(new PathHelper.Canonicalizer() { /** * Very basic, it does not try to canonicalize relative bits in the middle of a path. */ @Override public String canonicalize(String path) throws IOException { if ("".equals(path) || ".".equals(path) || "./".equals(path)) return "/home/me"; if ("..".equals(path) || "../".equals(path)) return "/home"; return path; } }, DEFAULT_PATH_SEPARATOR); when(sftpEngine.getPathHelper()).thenReturn(helper); when(sftpEngine.stat("/")).thenReturn(new FileAttributes.Builder().withType(FileMode.Type.DIRECTORY).build()); when(sftpEngine.getLoggerFactory()).thenReturn(LoggerFactory.DEFAULT); }
fis = local.getInputStream(); rfos = rf.new RemoteFileOutputStream(0, 16); new StreamCopier(fis, rfos, engine.getLoggerFactory()) .bufSize(engine.getSubsystem().getRemoteMaxPacketSize() - rf.getOutgoingPacketOverhead()) .keepFlushing(false)
private LocalDestFile downloadFile(final StreamCopier.Listener listener, final RemoteResourceInfo remote, final LocalDestFile local) throws IOException { final LocalDestFile adjusted = local.getTargetFile(remote.getName()); final RemoteFile rf = engine.open(remote.getPath()); try { final RemoteFile.ReadAheadRemoteFileInputStream rfis = rf.new ReadAheadRemoteFileInputStream(16); final OutputStream os = adjusted.getOutputStream(); try { new StreamCopier(rfis, os, engine.getLoggerFactory()) .bufSize(engine.getSubsystem().getLocalMaxPacketSize()) .keepFlushing(false) .listener(listener) .copy(); } finally { rfis.close(); os.close(); } } finally { rf.close(); } return adjusted; }
public SFTPFileTransfer(SFTPEngine engine) { super(engine.getLoggerFactory()); this.engine = engine; }
public Promise<Response, SFTPException> expectResponseTo(long requestId) { final Promise<Response, SFTPException> promise = new Promise<Response, SFTPException>("sftp / " + requestId, SFTPException.chainer, engine.getLoggerFactory()); promises.put(requestId, promise); return promise; }
protected RemoteResource(SFTPEngine requester, String path, byte[] handle) { this.requester = requester; log = requester.getLoggerFactory().getLogger(getClass()); this.path = path; this.handle = handle; }
public SFTPClient(SFTPEngine engine) { this.engine = engine; log = engine.getLoggerFactory().getLogger(getClass()); this.xfer = new SFTPFileTransfer(engine); }
public PacketReader(SFTPEngine engine) { this.engine = engine; log = engine.getLoggerFactory().getLogger(getClass()); this.in = engine.getSubsystem().getInputStream(); setName("sftp reader"); }
fis = local.getInputStream(); rfos = rf.new RemoteFileOutputStream(0, 16); new StreamCopier(fis, rfos, engine.getLoggerFactory()) .bufSize(engine.getSubsystem().getRemoteMaxPacketSize() - rf.getOutgoingPacketOverhead()) .keepFlushing(false)
private LocalDestFile downloadFile(final StreamCopier.Listener listener, final RemoteResourceInfo remote, final LocalDestFile local) throws IOException { final LocalDestFile adjusted = local.getTargetFile(remote.getName()); final RemoteFile rf = engine.open(remote.getPath()); try { final RemoteFile.ReadAheadRemoteFileInputStream rfis = rf.new ReadAheadRemoteFileInputStream(16); final OutputStream os = adjusted.getOutputStream(); try { new StreamCopier(rfis, os, engine.getLoggerFactory()) .bufSize(engine.getSubsystem().getLocalMaxPacketSize()) .keepFlushing(false) .listener(listener) .copy(); } finally { rfis.close(); os.close(); } } finally { rf.close(); } return adjusted; }