从S3下载大量文件

3 投票
6 回答
4279 浏览
提问于 2025-04-15 12:31

从亚马逊S3上用Python获取大量文件(每个文件相对较小,10-50千字节),最快的方法是什么?(大约有20万到100万文件)。

目前我正在使用boto生成签名网址,然后用PyCURL一个一个地下载文件。

使用某种并发处理会有帮助吗?比如PyCurl.CurlMulti对象?

我对所有建议都很开放。谢谢!

6 个回答

1

你可以考虑使用 s3fs,然后在Python中同时运行多个文件系统的命令。

2

我对Python一点都不了解,但一般来说,你会想把任务分成更小的部分,这样它们就可以同时进行。你可以按照文件类型、字母顺序或者其他方式来分,然后为每个分开的部分运行一个单独的脚本。

1

在Python中,由于它主要是输入输出(IO)密集型的,所以多个线程会使用CPU,但可能只会用到一个核心。如果你的电脑有多个核心,可能需要考虑使用新的多进程模块。即使这样,你可能还想让每个进程使用多个线程。你需要调整一下处理器和线程的数量。

如果你确实使用多个线程,那么队列类是个不错的选择。

撰写回答