List of usage examples for org.apache.commons.net.ftp FTPClient FTPClient
public FTPClient()
From source file:com.ut.healthelink.service.impl.transactionOutManagerImpl.java
/** * The 'FTPTargetFile' function will get the FTP details and send off the generated file * * @param batchId The id of the batch to FTP the file for *///from w w w . j a v a 2 s.c o m private void FTPTargetFile(int batchId, configurationTransport transportDetails) throws Exception { try { /* Update the status of the batch to locked */ transactionOutDAO.updateBatchStatus(batchId, 22); List<transactionTarget> targets = transactionOutDAO.getTransactionsByBatchDLId(batchId); if (!targets.isEmpty()) { for (transactionTarget target : targets) { /* Need to update the uploaded batch status */ transactionInManager.updateBatchStatus(target.getbatchUploadId(), 22, ""); /* Need to update the uploaded batch transaction status */ transactionInManager.updateTransactionStatus(target.getbatchUploadId(), target.gettransactionInId(), 0, 37); /* Update the downloaded batch transaction status */ transactionOutDAO.updateTargetTransasctionStatus(target.getbatchDLId(), 37); } } /* get the batch details */ batchDownloads batchFTPFileInfo = transactionOutDAO.getBatchDetails(batchId); /* Get the FTP Details */ configurationFTPFields ftpDetails = configurationTransportManager .getTransportFTPDetailsPush(transportDetails.getId()); if ("SFTP".equals(ftpDetails.getprotocol())) { JSch jsch = new JSch(); Session session = null; ChannelSftp channel = null; FileInputStream localFileStream = null; String user = ftpDetails.getusername(); int port = ftpDetails.getport(); String host = ftpDetails.getip(); Organization orgDetails = organizationManager.getOrganizationById( configurationManager.getConfigurationById(transportDetails.getconfigId()).getorgId()); if (ftpDetails.getcertification() != null && !"".equals(ftpDetails.getcertification())) { File newFile = null; fileSystem dir = new fileSystem(); dir.setDir(orgDetails.getcleanURL(), "certificates"); jsch.addIdentity(new File(dir.getDir() + ftpDetails.getcertification()).getAbsolutePath()); session = jsch.getSession(user, host, port); } else if (ftpDetails.getpassword() != null && !"".equals(ftpDetails.getpassword())) { session = jsch.getSession(user, host, port); session.setPassword(ftpDetails.getpassword()); } session.setConfig("StrictHostKeyChecking", "no"); session.setTimeout(2000); session.connect(); channel = (ChannelSftp) session.openChannel("sftp"); channel.connect(); if (ftpDetails.getdirectory() != null && !"".equals(ftpDetails.getdirectory())) { channel.cd(ftpDetails.getdirectory()); String fileName = null; int findExt = batchFTPFileInfo.getoutputFIleName().lastIndexOf("."); if (findExt >= 0) { fileName = batchFTPFileInfo.getoutputFIleName(); } else { fileName = new StringBuilder().append(batchFTPFileInfo.getoutputFIleName()).append(".") .append(transportDetails.getfileExt()).toString(); } //Set the directory to save the brochures to fileSystem dir = new fileSystem(); String filelocation = transportDetails.getfileLocation(); filelocation = filelocation.replace("/bowlink/", ""); dir.setDirByName(filelocation); File file = new File(dir.getDir() + fileName); if (file.exists()) { FileInputStream fileInput = new FileInputStream(file); channel.put(fileInput, fileName); } } channel.disconnect(); session.disconnect(); } else { FTPClient ftp; if ("FTP".equals(ftpDetails.getprotocol())) { ftp = new FTPClient(); } else { FTPSClient ftps; ftps = new FTPSClient(true); ftp = ftps; ftps.setTrustManager(null); } ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out))); ftp.setDefaultTimeout(3000); ftp.setConnectTimeout(3000); if (ftpDetails.getport() > 0) { ftp.connect(ftpDetails.getip(), ftpDetails.getport()); } else { ftp.connect(ftpDetails.getip()); } int reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); } else { ftp.login(ftpDetails.getusername(), ftpDetails.getpassword()); ftp.enterLocalPassiveMode(); String fileName = null; int findExt = batchFTPFileInfo.getoutputFIleName().lastIndexOf("."); if (findExt >= 0) { fileName = batchFTPFileInfo.getoutputFIleName(); } else { fileName = new StringBuilder().append(batchFTPFileInfo.getoutputFIleName()).append(".") .append(transportDetails.getfileExt()).toString(); } //Set the directory to save the brochures to fileSystem dir = new fileSystem(); String filelocation = transportDetails.getfileLocation(); filelocation = filelocation.replace("/bowlink/", ""); dir.setDirByName(filelocation); File file = new File(dir.getDir() + fileName); FileInputStream fileInput = new FileInputStream(file); ftp.changeWorkingDirectory(ftpDetails.getdirectory()); ftp.storeFile(fileName, fileInput); ftp.logout(); ftp.disconnect(); } } // we should delete file now that we ftp'ed the file try { fileSystem dir = new fileSystem(); String filelocation = transportDetails.getfileLocation(); filelocation = filelocation.replace("/bowlink/", ""); dir.setDirByName(filelocation); File sourceFile = new File(dir.getDir() + batchFTPFileInfo.getoutputFIleName()); if (sourceFile.exists()) { sourceFile.delete(); } transactionOutDAO.updateBatchStatus(batchId, 23); for (transactionTarget target : targets) { /* Need to update the uploaded batch status */ transactionInManager.updateBatchStatus(target.getbatchUploadId(), 23, ""); /* Need to update the uploaded batch transaction status */ transactionInManager.updateTransactionStatus(target.getbatchUploadId(), target.gettransactionInId(), 0, 20); /* Update the downloaded batch transaction status */ transactionOutDAO.updateTargetTransasctionStatus(target.getbatchDLId(), 20); } } catch (Exception e) { throw new Exception( "Error occurred during FTP - delete file and update statuses. batchId: " + batchId, e); } } catch (Exception e) { throw new Exception("Error occurred trying to FTP a batch target. batchId: " + batchId, e); } }
From source file:com.mozilla.SUTAgentAndroid.service.DoCommand.java
public String FTPGetFile(String sServer, String sSrcFileName, String sDstFileName, OutputStream out) { byte[] buffer = new byte[4096]; int nRead = 0; long lTotalRead = 0; String sRet = sErrorPrefix + "FTP Get failed for " + sSrcFileName; String strRet = ""; int reply = 0; FileOutputStream outStream = null; String sTmpDstFileName = fixFileName(sDstFileName); FTPClient ftp = new FTPClient(); try {/*w w w. j a v a 2s. c om*/ ftp.connect(sServer); reply = ftp.getReplyCode(); if (FTPReply.isPositiveCompletion(reply)) { ftp.login("anonymous", "b@t.com"); reply = ftp.getReplyCode(); if (FTPReply.isPositiveCompletion(reply)) { ftp.enterLocalPassiveMode(); if (ftp.setFileType(FTP.BINARY_FILE_TYPE)) { File dstFile = new File(sTmpDstFileName); outStream = new FileOutputStream(dstFile); FTPFile[] ftpFiles = ftp.listFiles(sSrcFileName); if (ftpFiles.length > 0) { long lFtpSize = ftpFiles[0].getSize(); if (lFtpSize <= 0) lFtpSize = 1; InputStream ftpIn = ftp.retrieveFileStream(sSrcFileName); while ((nRead = ftpIn.read(buffer)) != -1) { lTotalRead += nRead; outStream.write(buffer, 0, nRead); strRet = "\r" + lTotalRead + " of " + lFtpSize + " bytes received " + ((lTotalRead * 100) / lFtpSize) + "% completed"; out.write(strRet.getBytes()); out.flush(); } ftpIn.close(); @SuppressWarnings("unused") boolean bRet = ftp.completePendingCommand(); outStream.flush(); outStream.close(); strRet = ftp.getReplyString(); reply = ftp.getReplyCode(); } else { strRet = sRet; } } ftp.logout(); ftp.disconnect(); sRet = "\n" + strRet; } else { ftp.disconnect(); System.err.println("FTP server refused login."); } } else { ftp.disconnect(); System.err.println("FTP server refused connection."); } } catch (SocketException e) { sRet = e.getMessage(); strRet = ftp.getReplyString(); reply = ftp.getReplyCode(); sRet += "\n" + strRet; e.printStackTrace(); } catch (IOException e) { sRet = e.getMessage(); strRet = ftp.getReplyString(); reply = ftp.getReplyCode(); sRet += "\n" + strRet; e.printStackTrace(); } return (sRet); }
From source file:com.ibm.cics.ca1y.Emit.java
/** * Get the contents of a file from an FTP server. * /* w w w . j a va2 s. c om*/ * @param filename * - * @param server * - * @param useraname * - * @param userpassword * - * @param transfer * - * @param mode * - * @param epsv * - * @param protocol * - * @param trustmgr * - * @param datatimeout * - * @param proxyserver * - * @param proxyusername * - * @param proxypassword * - * @param anonymouspassword * - * @return byte[] representing the retrieved file, null otherwise. */ private static byte[] getFileUsingFTP(String filename, String server, String username, String userpassword, String transfer, String mode, String epsv, String protocol, String trustmgr, String datatimeout, String proxyserver, String proxyusername, String proxypassword, String anonymouspassword) { FTPClient ftp; if (filename == null || server == null) return null; int port = 0; if (server != null) { String parts[] = server.split(":"); if (parts.length == 2) { server = parts[0]; try { port = Integer.parseInt(parts[1]); } catch (Exception _ex) { } } } int proxyport = 0; if (proxyserver != null) { String parts[] = proxyserver.split(":"); if (parts.length == 2) { proxyserver = parts[0]; try { proxyport = Integer.parseInt(parts[1]); } catch (Exception _ex) { } } } if (username == null) { username = "anonymous"; if (userpassword == null) userpassword = anonymouspassword; } if (protocol == null) { if (proxyserver != null) ftp = new FTPHTTPClient(proxyserver, proxyport, proxyusername, proxypassword); else ftp = new FTPClient(); } else { FTPSClient ftps = null; if ("true".equalsIgnoreCase(protocol)) { ftps = new FTPSClient(true); } else if ("false".equalsIgnoreCase(protocol)) { ftps = new FTPSClient(false); } else if (protocol != null) { String parts[] = protocol.split(","); if (parts.length == 1) ftps = new FTPSClient(protocol); else ftps = new FTPSClient(parts[0], Boolean.parseBoolean(parts[1])); } ftp = ftps; if ("all".equalsIgnoreCase(trustmgr)) { ftps.setTrustManager(TrustManagerUtils.getAcceptAllTrustManager()); } else if ("valid".equalsIgnoreCase(trustmgr)) { ftps.setTrustManager(TrustManagerUtils.getValidateServerCertificateTrustManager()); } else if ("none".equalsIgnoreCase(trustmgr)) { ftps.setTrustManager(null); } } if (datatimeout != null) { try { ftp.setDataTimeout(Integer.parseInt(datatimeout)); } catch (Exception _ex) { ftp.setDataTimeout(-1); } } if (port <= 0) { port = ftp.getDefaultPort(); } if (logger.isLoggable(Level.FINE)) { StringBuilder sb = new StringBuilder(); sb.append(Emit.messages.getString("FTPAboutToGetFileFromServer")).append(" - ").append("file name:") .append(filename).append(",server:").append(server).append(":").append(port) .append(",username:").append(username).append(",userpassword:") .append(userpassword != null && !"anonymous".equals(username) ? "<obscured>" : userpassword) .append(",transfer:").append(transfer).append(",mode:").append(mode).append(",epsv:") .append(epsv).append(",protocol:").append(protocol).append(",trustmgr:").append(trustmgr) .append(",datatimeout:").append(datatimeout).append(",proxyserver:").append(proxyserver) .append(":").append(proxyport).append(",proxyusername:").append(proxyusername) .append(",proxypassword:").append(proxypassword != null ? "<obscured>" : null); logger.fine(sb.toString()); } try { if (port > 0) { ftp.connect(server, port); } else { ftp.connect(server); } int reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); logger.warning(Emit.messages.getString("FTPCouldNotConnectToServer")); return null; } } catch (IOException _ex) { logger.warning(Emit.messages.getString("FTPCouldNotConnectToServer")); if (ftp.isConnected()) try { ftp.disconnect(); } catch (IOException _ex2) { } return null; } ByteArrayOutputStream output; try { if (!ftp.login(username, userpassword)) { ftp.logout(); logger.warning(Emit.messages.getString("FTPServerRefusedLoginCredentials")); return null; } if ("binary".equalsIgnoreCase(transfer)) { ftp.setFileType(2); } else { ftp.setFileType(0); } if ("localactive".equalsIgnoreCase(mode)) { ftp.enterLocalActiveMode(); } else { ftp.enterLocalPassiveMode(); } ftp.setUseEPSVwithIPv4("true".equalsIgnoreCase(epsv)); output = new ByteArrayOutputStream(); ftp.retrieveFile(filename, output); output.close(); ftp.noop(); ftp.logout(); } catch (IOException _ex) { logger.warning(Emit.messages.getString("FTPFailedToTransferFile")); if (ftp.isConnected()) try { ftp.disconnect(); } catch (IOException _ex2) { } return null; } return output.toByteArray(); }
From source file:base.BasePlayer.Main.java
static String getNewFile(String server, String folder, String oldfile) { String minfile = ""; try {/*from w w w .ja va 2 s . co m*/ String filename = oldfile; FTPClient f = new FTPClient(); f.connect(server); f.enterLocalPassiveMode(); f.login("anonymous", ""); FTPFile[] files = f.listFiles(folder); int left = 0, right = filename.length() - 1, distance = 0; int mindistance = 100; for (int i = 0; i < files.length; i++) { if (files[i].getName().endsWith(".gff3.gz")) { distance = 0; right = Math.min(filename.length(), files[i].getName().length()); left = 0; while (left < right) { if (filename.charAt(left) != files[i].getName().charAt(left)) { distance++; } left++; } distance += Math.abs(filename.length() - files[i].getName().length()); if (distance < mindistance) { mindistance = distance; minfile = files[i].getName(); } } } } catch (Exception ex) { ex.printStackTrace(); } return minfile; }
From source file:net.yacy.grid.io.assets.FTPStorageFactory.java
public FTPStorageFactory(String server, int port, String username, String password, boolean deleteafterread) throws IOException { this.server = server; this.username = username == null ? "" : username; this.password = password == null ? "" : password; this.port = port; this.deleteafterread = deleteafterread; this.ftpClient = new Storage<byte[]>() { @Override/*from w w w. j a v a 2 s .c o m*/ public void checkConnection() throws IOException { return; } private FTPClient initConnection() throws IOException { FTPClient ftp = new FTPClient(); ftp.setDataTimeout(3000); ftp.setConnectTimeout(20000); if (FTPStorageFactory.this.port < 0 || FTPStorageFactory.this.port == DEFAULT_PORT) { ftp.connect(FTPStorageFactory.this.server); } else { ftp.connect(FTPStorageFactory.this.server, FTPStorageFactory.this.port); } ftp.enterLocalPassiveMode(); // the server opens a data port to which the client conducts data transfers int reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { if (ftp != null) try { ftp.disconnect(); } catch (Throwable ee) { } throw new IOException("bad connection to ftp server: " + reply); } if (!ftp.login(FTPStorageFactory.this.username, FTPStorageFactory.this.password)) { if (ftp != null) try { ftp.disconnect(); } catch (Throwable ee) { } throw new IOException("login failure"); } ftp.setFileType(FTP.BINARY_FILE_TYPE); ftp.setBufferSize(8192); return ftp; } @Override public StorageFactory<byte[]> store(String path, byte[] asset) throws IOException { long t0 = System.currentTimeMillis(); FTPClient ftp = initConnection(); try { long t1 = System.currentTimeMillis(); String file = cdPath(ftp, path); long t2 = System.currentTimeMillis(); ftp.enterLocalPassiveMode(); boolean success = ftp.storeFile(file, new ByteArrayInputStream(asset)); long t3 = System.currentTimeMillis(); if (!success) throw new IOException("storage to path " + path + " was not successful (storeFile=false)"); Data.logger.debug("FTPStorageFactory.store ftp store successfull: check connection = " + (t1 - t0) + ", cdPath = " + (t2 - t1) + ", store = " + (t3 - t2)); } catch (IOException e) { throw e; } finally { if (ftp != null) try { ftp.disconnect(); } catch (Throwable ee) { } } return FTPStorageFactory.this; } @Override public Asset<byte[]> load(String path) throws IOException { FTPClient ftp = initConnection(); ByteArrayOutputStream baos = null; byte[] b = null; try { String file = cdPath(ftp, path); baos = new ByteArrayOutputStream(); ftp.retrieveFile(file, baos); b = baos.toByteArray(); if (FTPStorageFactory.this.deleteafterread) try { boolean deleted = ftp.deleteFile(file); FTPFile[] remaining = ftp.listFiles(); if (remaining.length == 0) { ftp.cwd("/"); if (path.startsWith("/")) path = path.substring(1); int p = path.indexOf('/'); if (p > 0) path = path.substring(0, p); ftp.removeDirectory(path); } } catch (Throwable e) { Data.logger.warn("FTPStorageFactory.load failed to remove asset " + path, e); } } catch (IOException e) { throw e; } finally { if (ftp != null) try { ftp.disconnect(); } catch (Throwable ee) { } } return new Asset<byte[]>(FTPStorageFactory.this, b); } @Override public void close() { } private String cdPath(FTPClient ftp, String path) throws IOException { int success_code = ftp.cwd("/"); if (success_code >= 300) throw new IOException("cannot cd into " + path + ": " + success_code); if (path.length() == 0 || path.equals("/")) return ""; if (path.charAt(0) == '/') path = path.substring(1); // we consider that all paths are absolute to / (home) int p; while ((p = path.indexOf('/')) > 0) { String dir = path.substring(0, p); int code = ftp.cwd(dir); if (code >= 300) { // path may not exist, try to create the path boolean success = ftp.makeDirectory(dir); if (!success) throw new IOException("unable to create directory " + dir + " for path " + path); code = ftp.cwd(dir); if (code >= 300) throw new IOException("unable to cwd into directory " + dir + " for path " + path); } path = path.substring(p + 1); } return path; } }; }
From source file:nl.esciencecenter.xenon.adaptors.filesystems.ftp.FtpFileAdaptor.java
protected FTPClient connect(String location, Credential credential) throws XenonException { URI uri;/*from w ww. j a va2 s . c o m*/ try { uri = new URI("ftp://" + location); } catch (Exception e) { throw new InvalidLocationException(ADAPTOR_NAME, "Failed to parse location: " + location, e); } FTPClient ftpClient = new FTPClient(); ftpClient.setListHiddenFiles(true); String host = uri.getHost(); int port = uri.getPort(); if (port == -1) { port = DEFAULT_PORT; } connectToServer(host, port, ftpClient); login(credential, ftpClient); try { ftpClient.enterLocalPassiveMode(); } catch (Exception e) { throw new XenonException(ADAPTOR_NAME, "Failed to switch to PASSIVE mode"); } return ftpClient; }
From source file:nl.nn.adapterframework.ftp.FtpSession.java
private FTPClient createFTPClient() throws NoSuchAlgorithmException, KeyStoreException, GeneralSecurityException, IOException { if (ftpType == FTP) { return new FTPClient(); }/* ww w . j av a 2s. c o m*/ return new FTPsClient(this); }
From source file:no.imr.sea2data.stox.InstallerUtil.java
public static Boolean retrieveFromFTP(String ftpPath, String outFile, FTPFileFilter filter) { try {/*from w ww . j av a 2 s . c o m*/ FTPClient ftpClient = new FTPClient(); // pass directory path on server to connect if (ftpPath == null) { return false; } ftpPath = ftpPath.replace("ftp://", ""); String[] s = ftpPath.split("/", 2); if (s.length != 2) { return false; } String server = s[0]; String subPath = s[1]; ftpClient.setConnectTimeout(5000); ftpClient.connect(server); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); if (!ftpClient.login("anonymous", "")) { return false; } ftpClient.enterLocalPassiveMode(); // bug : mac doesnt allow ftp server connect through through local firewall - thus use passive server try (FileOutputStream fos = new FileOutputStream(outFile)) { try { String path = subPath + "/"; FTPFile[] files = ftpClient.listFiles(path, filter); Optional<FTPFile> opt = Arrays.stream(files) .sorted((f1, f2) -> Integer.compare(f1.getName().length(), f2.getName().length())) .findFirst(); if (opt.isPresent()) { ftpClient.retrieveFile(path + opt.get().getName(), fos); } } finally { ftpClient.logout(); ftpClient.disconnect(); } } return true; } catch (IOException ex) { throw new UncheckedIOException(ex); } }
From source file:no.imr.sea2data.stox.InstallerUtil.java
public static boolean retrieveReferenceFromFTP() { FTPClient ftpClient = new FTPClient(); try {// w w w . ja v a 2 s . co m // pass directory path on server to connect ftpClient.connect("ftp.imr.no"); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); // successful if (!ftpClient.login("anonymous", "")) { return false; } ftpClient.enterLocalPassiveMode(); FTPUtil.retrieveDir(ftpClient, FTP_STOXDOWNLOAD_REFERENCE, ProjectUtils.getSystemReferenceFolder()); } catch (Exception e) { return false; } finally { try { ftpClient.disconnect(); } catch (IOException e) { } } return true; }
From source file:nz.co.jsrsolutions.ds3.provider.CMEEodDataProvider.java
public CMEEodDataProvider(String hostname, String basePath, CMEEodDataProviderExchangeDescriptor[] descriptors) throws EodDataProviderException { _hostname = hostname;//from w ww .j a va2 s . c o m _basePath = basePath; _descriptors = descriptors; FTPClient ftp = new FTPClient(); FTPClientConfig config = new FTPClientConfig(); ftp.configure(config); boolean error = false; try { int reply; ftp.connect(_hostname); _logger.info("Connected to " + _hostname); _logger.info(ftp.getReplyString()); // After connection attempt, you should check the reply code to // verify // success. reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); _logger.error("FTP server refused connection."); throw new EodDataProviderException("FTP server refused connection."); } boolean result = ftp.login("anonymous", "jsr@argusat.com"); result = ftp.changeWorkingDirectory(_basePath); reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); _logger.error(reply); throw new EodDataProviderException("Failed to cd into " + _basePath); } for (CMEEodDataProviderExchangeDescriptor descriptor : _descriptors) { OutputStream output = new ByteArrayOutputStream(); String modificationTime = ftp.getModificationTime(descriptor.getFilename()); // 213 20131202235804\r\n result = ftp.retrieveFile(descriptor.getFilename(), output); output.close(); } ftp.logout(); } catch (IOException e) { error = true; e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { // do nothing } } } }