java - 与 Java FTP 客户端并行上传文件
问题描述
我曾经使用客户端库以GPars
并行方式上传文件:ftp4j
GParsPool.withPool {
files.eachParallel { file -> ftpClient.upload(directory, stream)
}
但是,现在我只有 ftp4j 客户端无法工作的服务器 ELB 地址,所以我将客户端更改为 Apache Commons Net FTP 客户端,这不是线程安全的,因此我无法进行并行化。
是否有任何其他支持并行化和远程验证假的 FTP 库(以支持 elb)?
或者,我需要在服务器端(elb 配置)做一些事情,这样我就不需要更改 ftp 客户端??
解决方案
您不能通过一个 FTP 连接并行上传多个文件。您使用什么 FTP 库以及它是否是线程安全的都无关紧要。协议本身不允许这样做。
即使这样做(例如 SFTP 那样),也不会为您带来任何性能优势。
您必须为每个线程打开一个单独的连接。
推荐阅读
- javascript - args 在 grunt-protractor-runner 中不起作用
- dialogflow-es - 帐户关联流程未在 Google 助理上启动
- javascript - 如何检查数组是否包含另一个对象的值?
- postgresql - 无法在 postgres 复制中执行基本备份。错误:pg_basebackup:无法连接到服务器
- mongodb - 如何在填充函数中使用 $elemMatch
- asp.net - “c:\Data\imoltp_mod1”指定的路径不在有效目录中
- android - Libgdx 游戏落后于更好的手机
- mysql - org.hibernate.tool.hbm2ddl.SchemaUpdate 不向现有表定义添加新列
- json - 如何在 Go 中解码 base64 编码的 JSON
- lambda - 过滤字段中包含映射的对象并在映射中搜索与提供的集合中的至少一个键匹配的键