首页 > 解决方案 > 与 Java FTP 客户端并行上传文件

问题描述

我曾经使用客户端库以GPars并行方式上传文件:ftp4j

GParsPool.withPool {
            files.eachParallel { file -> ftpClient.upload(directory, stream)
}

但是,现在我只有 ftp4j 客户端无法工作的服务器 ELB 地址,所以我将客户端更改为 Apache Commons Net FTP 客户端,这不是线程安全的,因此我无法进行并行化。

是否有任何其他支持并行化和远程验证假的 FTP 库(以支持 elb)?

或者,我需要在服务器端(elb 配置)做一些事情,这样我就不需要更改 ftp 客户端??

标签: javafile-uploadftpapache-commons-netgpars

解决方案


您不能通过一个 FTP 连接并行上传多个文件。您使用什么 FTP 库以及它是否是线程安全的都无关紧要。协议本身不允许这样做。

即使这样做(例如 SFTP 那样),也不会为您带来任何性能优势。

您必须为每个线程打开一个单独的连接。


推荐阅读