/** * configures the supplied FTPClient with the various attributes set in the supplied FTP task. * * @param client the FTPClient to be configured * @param task the FTP task whose attributes are used to configure the client * @return the client as configured. */ static FTPClient configure(FTPClient client, FTPTaskConfig task) { task.log("custom configuration", Project.MSG_VERBOSE); FTPClientConfig config; String systemTypeKey = task.getSystemTypeKey(); if (systemTypeKey != null && !"".equals(systemTypeKey)) { config = new FTPClientConfig(systemTypeKey); task.log("custom config: system key = " + systemTypeKey, Project.MSG_VERBOSE); } else { config = new FTPClientConfig(); task.log("custom config: system key = default (UNIX)", Project.MSG_VERBOSE); } String defaultDateFormatConfig = task.getDefaultDateFormatConfig(); if (defaultDateFormatConfig != null) { config.setDefaultDateFormatStr(defaultDateFormatConfig); task.log( "custom config: default date format = " + defaultDateFormatConfig, Project.MSG_VERBOSE); } String recentDateFormatConfig = task.getRecentDateFormatConfig(); if (recentDateFormatConfig != null) { config.setRecentDateFormatStr(recentDateFormatConfig); task.log( "custom config: recent date format = " + recentDateFormatConfig, Project.MSG_VERBOSE); } String serverLanguageCodeConfig = task.getServerLanguageCodeConfig(); if (serverLanguageCodeConfig != null) { if (!"".equals(serverLanguageCodeConfig) && !FTPClientConfig.getSupportedLanguageCodes().contains(serverLanguageCodeConfig)) { throw new BuildException("unsupported language code" + serverLanguageCodeConfig); } config.setServerLanguageCode(serverLanguageCodeConfig); task.log( "custom config: server language code = " + serverLanguageCodeConfig, Project.MSG_VERBOSE); } String serverTimeZoneConfig = task.getServerTimeZoneConfig(); if (serverTimeZoneConfig != null) { config.setServerTimeZoneId(serverTimeZoneConfig); task.log("custom config: server time zone ID = " + serverTimeZoneConfig, Project.MSG_VERBOSE); } String shortMonthNamesConfig = task.getShortMonthNamesConfig(); if (shortMonthNamesConfig != null) { config.setShortMonthNames(shortMonthNamesConfig); task.log("custom config: short month names = " + shortMonthNamesConfig, Project.MSG_VERBOSE); } client.configure(config); return client; }
private void connectFtpServer() { try { ftpClient = new FTPClient(); FTPClientConfig ftpClientConfig = new FTPClientConfig(); ftpClientConfig.setServerTimeZoneId(TimeZone.getDefault().getID()); ftpClient.configure(ftpClientConfig); URL url = getURL(); if (url.getPort() <= 0) { ftpClient.connect(url.getHost()); } else { ftpClient.connect(url.getHost(), url.getPort()); } if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) { throw new VFSRuntimeException("连接失败!"); } if (url.getUserInfo() != null) { String userInfo[] = url.getUserInfo().split(":"); String userName = null; String password = null; if (userInfo.length >= 1) { userName = userInfo[0]; } if (userInfo.length >= 2) { password = userInfo[1]; } if (!ftpClient.login(userName, password)) { throw new VFSRuntimeException("登录失败:" + url.toString()); } if (!ftpClient.setFileType(FTP.BINARY_FILE_TYPE)) { throw new VFSRuntimeException("设置二进制类型失败"); } ftpClient.setBufferSize(BUF_SIZE); ftpClient.setControlEncoding("utf-8"); } } catch (Exception e) { throw new VFSRuntimeException(e); } }