Java FTPS客户端在新的FTPS服务器上无法正常工作
在不久的将来,我们将从客户的ftps服务器转移到我们自己的ftps服务器。我只是尝试了现有的代码,但它不能与我们的新服务器正常工作 登录似乎正常,我可以使用Java FTPS客户端在新的FTPS服务器上无法正常工作,java,apache,ftp,ftp-client,lucee,Java,Apache,Ftp,Ftp Client,Lucee,在不久的将来,我们将从客户的ftps服务器转移到我们自己的ftps服务器。我只是尝试了现有的代码,但它不能与我们的新服务器正常工作 登录似乎正常,我可以使用printWorkingDirectory()查看服务器上的正确目录。但是我们不能上传文件或列出工作目录中的文件listFiles()和printWorkingDirectory()返回空字符串或空数组,尽管文件位于工作目录中 IIRC我们在旧的FTPS服务器上有类似的问题,可以通过进入被动模式来解决。但是无论是enterLocalPassi
printWorkingDirectory()
查看服务器上的正确目录。但是我们不能上传文件或列出工作目录中的文件listFiles()
和printWorkingDirectory()
返回空字符串或空数组,尽管文件位于工作目录中
IIRC我们在旧的FTPS服务器上有类似的问题,可以通过进入被动模式来解决。但是无论是enterLocalPassiveMode()
还是enterLocalActiveMode()
都不能工作。同时,完全忽略这一行也无济于事
当连接FileZilla时,服务器本身工作正常,所以我猜问题出在我们的代码中,但是由于我们没有收到错误消息,所以很难猜测问题出在哪里
以下是在旧服务器上运行的版本(在Lucee 5.1.2.24上使用cfscript):
当我们尝试上载文件时,循环结束,但速度很快(我们这里的连接相当慢,因此不应立即上载几兆字节),最后的disconnect()
调用超时
你知道从哪里开始调试吗?或者,我最初的假设是,这是一个错误的代码问题,这是一个服务器的问题,我们应该研究一下
更新:
由于篇幅太长,我在这里发布了FileZilla的详细日志:如果它对旧服务器而不是新服务器有效,那么这听起来像是两台服务器之间的配置差异。例如,新服务器是否获得了有效的SSL证书?向我们显示FileZilla详细日志文件。这是FileZilla的详细日志:您有权访问服务器端日志吗?+
getReplyString()
在listFiles()
+之后返回什么?它是否适用于普通的不安全FTP?listFiles()
返回503被拒绝-需要安全连接
-这似乎是一个拼写错误代码,530对于该错误似乎是正确的。我是否需要手动请求安全模式,因为我处于显式模式?如果是这样的话,有没有关于如何做到这一点的例子?如果它针对的是旧服务器而不是新服务器,那么这听起来像是两台服务器之间的配置差异。例如,新服务器是否获得了有效的SSL证书?向我们显示FileZilla详细日志文件。这是FileZilla的详细日志:您有权访问服务器端日志吗?+getReplyString()
在listFiles()
+之后返回什么?它是否适用于普通的不安全FTP?listFiles()
返回503被拒绝-需要安全连接
-这似乎是一个拼写错误代码,530对于该错误似乎是正确的。我是否需要手动请求安全模式,因为我处于显式模式?如果是,有没有关于如何做到这一点的例子?
var oFTPSclient = CreateObject("java", "org.apache.commons.net.ftp.FTPSClient").init("ssl",false);
oFTPSclient.connect( 'our.ftp.server');
oFTPSclient.enterLocalPassiveMode();
oFTPSclient.login( 'user', 'password');
var qFiles = DirectoryList(
path = '/path/to/files/to/upload',
filter = "*.jpg",
listInfo = "query"
);
// Upload files
for( var oFile IN qFiles) {
// Create path to source file
var sSourceFilePath = ExpandPath( oFile.directory & '/' & oFile.name);
// Create java file object
var oJavaFile = CreateObject( "java", "java.io.File").init( sSourceFilePath);
// open input stream from file
var oFileInputStream = CreateObject("java", "java.io.FileInputStream").init( oJavaFile);
// Set file transfer to binary
oFTPSclient.setFileType( oFTPSclient.BINARY_FILE_TYPE);
// store current file to server
oFTPSclient.storeFile( oFile.name, oFileInputStream);
oFileInputStream.close();
}
oFTPSclient.disconnect();