如何解决使用隐式 ftps端口 990以及显式 ftps端口 21上传文件,但文件上传时为 0 字节
以下代码以被动模式连接到远程机器
.container {
white-space: pre-line;
}
我收到代码 226 成功传输,文件时间戳也得到更新,但文件仍然为 0kb 空。
写操作失败,出现异常javax.net.ssl.SSLHandshakeException: No new session is allowed and no existing session can be resumed
从库代码中,它在 apache-commons-net 的 FTPSClient 的 public void connect(ConnectionManager connectionManager) throws IOException {
Objects.requireNonNull(connectionManager,"Can't process with null ConnectionManager object.");
if (connectionManager.getPort() == 990) {
ftpsClient = new FTPSClient(true);
//ftpsClient.setAuthValue("TLSv1.2");
//ftpsClient.setTrustManager(TrustManagerUtils.getAcceptAllTrustManager());
} else {
ftpsClient = new FTPSClient();
}
ftpsClient.setConnectTimeout(connectionManager.getConnectionTimeout());
ftpsClient.connect(connectionManager.getHost(),connectionManager.getPort());
ftpsClient.login(connectionManager.getUsername(),connectionManager.getpassword());
if(ftpsClient.isConnected()) {
ftpsClient.execPBSZ(0);
ftpsClient.execPROT("P");
ftpsClient.setEnabledSessionCreation(false); //If I set this to true then it throws exception:450 TLS session of data connection has not resumed or the session does not match the control connection
// ftpsClient.setNeedClientAuth(true);
// ftpsClient.setWantClientAuth(true);
// ftpsClient.setPassiveNatWorkaround(true);
ftpsClient.enterLocalPassiveMode();
}
ftpsClient.setSoTimeout(connectionManager.getSocketTimeout());
ftpsClient.setFileType(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE);
ftpsClient.setFileTransferMode(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE);
ftpsClient.addProtocolCommandListener(new ProtocolCommandListener() {
@Override
public void protocolReplyReceived(ProtocolCommandEvent arg0) {
log.info(arg0.getMessage());
}
@Override
public void protocolCommandSent(ProtocolCommandEvent arg0) {
log.info(arg0.getMessage());
}
});
}
处失败
sslSocket.startHandshake()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。