是否可以使用显式 TLS 进行 ColdFusion FTP 连接?
我在谷歌上搜索过,但无济于事。
Apache Commons 也有一个FTPSClient类,我认为它已经在 Coldfusion 的更高版本中可用。
只是添加一个例子。它使用我发现可用的测试服务器。我使用的是 CF 9.0.2,不需要下载任何额外的 jar。
ftpsClient = CreateObject("java","org.apache.commons.net.ftp.FTPSClient").init(JavaCast("boolean",true));
ftpsClient.connect(JavaCast("string","ftp.secureftp-test.com"),990);
connected = ftpsClient.isConnected();
WriteOutput("Is Connected:" & connected & '<br/>');
login = ftpsClient.login('test','test');
WriteOutput("Is Logged in:" & login & '<br/>');
ftpsClient.logout();
ftpsClient.disconnect();
connected = ftpsClient.isConnected();
WriteOutput("Is Connected:" & connected & '<br/>');
除非在 CF10 中有所改变,否则CFFTP
支持secure FTP
但不支持SFTP
或FTPS
. 您可能需要使用本博客FTP4J
中提到的 Java 库。
从FTP4J 文档:
FTPS/FTPES 安全连接
ftp4j 库支持 FTPS(基于隐式 TLS/SSL 的 FTP)和 FTPES(基于显式 TLS/SSL 的 FTP)。
setSecurity() 方法可用于开启该功能:
client.setSecurity(FTPClient.SECURITY_FTPS); // 启用 FTPS client.setSecurity(FTPClient.SECURITY_FTPES); // 启用 FTPES
正如 Miguel-F 指出的那样,如果您在这两行上切换注释,它应该启用 FTPES。
//FTPClient.setSecurity(FTPClient.SECURITY_FTPES); // enables FTPES
FTPClient.setSecurity(FTPClient.SECURITY_FTPS); // enables FTPS