public FileObjectProxy(FTPConfig config) { super(); this.ftpConfig = config; connectionString = String.format( "%s://%s:%s%s", config.getType().toString().toLowerCase(), config.getHost(), config.getPort(), config.getWorkDir()); }
public FileObject connectAndChangeToWorkDir() throws FileSystemException { StaticUserAuthenticator auth = new StaticUserAuthenticator(null, ftpConfig.getUsername(), ftpConfig.getPassword()); FileSystemOptions opts = new FileSystemOptions(); switch (ftpConfig.getType()) { case FTP: FtpFileSystemConfigBuilder.getInstance().setSoTimeout(opts, SOCKET_TIMEOUT); FtpFileSystemConfigBuilder.getInstance().setDataTimeout(opts, DATA_TIMEOUT); FtpFileSystemConfigBuilder.getInstance().setConnectTimeout(opts, CONNET_TIMEOUT); break; case FTPS: FtpsFileSystemConfigBuilder.getInstance().setSoTimeout(opts, SOCKET_TIMEOUT); FtpsFileSystemConfigBuilder.getInstance().setDataTimeout(opts, DATA_TIMEOUT); FtpsFileSystemConfigBuilder.getInstance().setConnectTimeout(opts, CONNET_TIMEOUT); break; case SFTP: SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, SOCKET_TIMEOUT); break; } DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth); FileObject fo = VFS.getManager().resolveFile(connectionString, opts); LOG.info("connected at {} #{}", connectionString, ftpConfig.getId()); return fo; }