我正在使用 Apache Commons 库在我的应用程序中使用 FTP/FTPS 访问文件。该应用程序的架构不允许启动FTPClient,在我的情况下,我需要使用 ApacheFTPSClient。
该接口只允许我将路径传递给文件、配置和FileSystem实现。
是否有要设置的属性或其他方式来配置FTPFileSystem使用FTPSClient而不是FTPClient?
我正在使用 Apache Commons 库在我的应用程序中使用 FTP/FTPS 访问文件。该应用程序的架构不允许启动FTPClient,在我的情况下,我需要使用 ApacheFTPSClient。
该接口只允许我将路径传递给文件、配置和FileSystem实现。
是否有要设置的属性或其他方式来配置FTPFileSystem使用FTPSClient而不是FTPClient?
FTPFileSystem不支持 FTPS。它无法创建FTPSClient.
FileSystem您应该必须基于FTPFileSystem(更改实现)创建自己的实现open,在其中将客户端初始化为 FTPSClient 而不是 FTP 客户端。IE:
FTPSClient 客户端 = 新的 FTPSClient();
您可以使用以下方法将其与 ftps://URL 关联:
conf.set("fs.ftps.impl", "com.myproject.MyFTPSFileSystem");
您可能需要为客户端设置以下属性才能进入本地被动模式:
conf.set("fs.ftp.data.connection.mode", "PASSIVE_LOCAL_DATA_CONNECTION_MODE");