使用Python发送1000个2MB文件的最快方法是什么?

1 投票
1 回答
1036 浏览
提问于 2025-04-18 00:12

我们遇到了一个问题,想要通过网络以最有效的方式发送大约1000个(甚至更多)2MB的文件块。我们希望避免使用纯粹的套接字(如果实在不行,我们会用它们)。目前我们测试了以下几种方法:

  1. 使用rabbitmq客户端连接到服务器:在本地测试时,大约需要39秒传输1GB(速度非常慢)
  2. 使用requests客户端连接到flask服务器:在本地测试时,传输1GB仍然需要大约40秒
  3. 在tornado上运行flask,为每个IO写入操作创建线程,结果还是需要40秒传输1GB的SSD闪存
  4. 使用原始的tornado,传输1GB也需要40秒

我们快没主意了。对我们来说,最好的解决方案是使用轻量级的方式,也许可以考虑http。

1 个回答

0

如果一开始所有的文件都能用,那我会先把它们压缩成一个文件。这里主要不是说压缩得多厉害,而是说文件的数量。因为每个文件在打开和关闭的时候,还有网络连接的开始和结束,这些操作会对每个文件重复进行100次,这样就会浪费很多时间和资源。如果把文件压缩成一个,那这些重复的操作就能省去不少。压缩也会有帮助。

至于使用套接字或HTTP,实际上如果你只有一个文件(或者说是一个数据流),那影响就不大了。

撰写回答