与 Java FTP 客户端并行上传文件
Uploading files in parallel with Java FTP client
我使用 GPars
以与 ftp4j
客户端库并行的方式上传文件:
GParsPool.withPool {
files.eachParallel { file -> ftpClient.upload(directory, stream)
}
但是,现在我只有 ftp4j 客户端无法正常工作的服务器 ELB 地址,所以我将客户端更改为 Apache Commons Net FTP 客户端,这不是线程安全的,因为其中我无法进行并行化。
有没有其他FTP库支持并行化和远程验证false(支持elb)??
或者,我需要在服务器端做一些事情(elb 配置),这样我就不需要更改 ftp 客户端??
您不能通过一个 FTP 连接并行上传多个文件。您使用的 FTP 库是什么以及它是否是线程安全的都没有关系。协议本身不允许这样做。
即使它做到了(例如 SFTP 做到了),它也不会给您带来任何性能优势。
您必须为每个线程打开一个单独的连接。
我使用 GPars
以与 ftp4j
客户端库并行的方式上传文件:
GParsPool.withPool {
files.eachParallel { file -> ftpClient.upload(directory, stream)
}
但是,现在我只有 ftp4j 客户端无法正常工作的服务器 ELB 地址,所以我将客户端更改为 Apache Commons Net FTP 客户端,这不是线程安全的,因为其中我无法进行并行化。
有没有其他FTP库支持并行化和远程验证false(支持elb)??
或者,我需要在服务器端做一些事情(elb 配置),这样我就不需要更改 ftp 客户端??
您不能通过一个 FTP 连接并行上传多个文件。您使用的 FTP 库是什么以及它是否是线程安全的都没有关系。协议本身不允许这样做。
即使它做到了(例如 SFTP 做到了),它也不会给您带来任何性能优势。
您必须为每个线程打开一个单独的连接。