FTPSclient在新的FTPS服务器上无法正常工作

时间:2017-04-13 16:02:15

标签: java apache ftp ftp-client lucee

我们将在不久的将来从客户的ftps服务器转移到我们自己的ftps服务器。我只是尝试了现有代码,但它无法正常使用我们的新服务器。

登录似乎有效,我可以使用printWorkingDirectory()并查看我在服务器上的正确目录中。但我们无法上传文件或列出工作目录中的文件。 listFiles()printWorkingDirectory()返回空字符串或空数组,但文件位于工作目录中。

IIRC我们在旧的FTPS服务器上遇到了类似的问题,可以通过进入被动模式来修复它。但enterLocalPassiveMode()enterLocalActiveMode()都不起作用。完全离开那条线也没有帮助

服务器本身在与FileZilla连接时工作正常,所以我猜问题在于我们的代码,但由于我们没有收到错误消息,因此很难猜出问题是什么。

这是在旧服务器上运行的版本(在Lucee 5.1.2.24上使用cfscript):

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();

当我们尝试上传文件时,循环结束,但是快速的方式(我们的连接在这里相当慢,所以不应该立即上传几兆字节)和最后的disconnect()调用时间。

任何想法从哪里开始调试?或者我最初的假设是代码错误,这是服务器的问题,我们应该考虑一下?

更新

由于篇幅较长,我在此发布了FileZilla的详细日志:http://pastebin.com/b9TfR7cg

0 个答案:

没有答案