从S3下载文件的大量
-
20-08-2019 - |
题
什么是获得了大量来自Python文件(相对较小10-50kB)从Amazon S3最快的方法? (在20万个的订单 - 万个文件)。
目前我使用的博托生成签署的网址,并使用PyCURL获得文件一个接一个。
请问某种类型的并发帮助? PyCurl.CurlMulti反对呢?
我向所有人开放的建议。谢谢!
其他提示
我不知道蟒蛇什么,但一般你会想下来把任务分成小块,使他们能够同时运行。你可以把它分解由文件类型,或字母或东西,然后运行一个单独的脚本用于击穿的每个部分。
您可能会考虑使用 s3fs ,只是运行并行文件系统命令在Python。
我一直在使用txaws与扭曲为S3的工作,虽然你可能会想什么是只是为了获得认证的网址,并使用twisted.web.client.DownloadPage(默认情况下会很乐意从流没有太多到文件去交互)。
扭曲可以很容易地在任何你想要的并发运行。对于20万的数量级上的东西,我可能会做一个发电机和使用合作者来设置我的并发性,只是让发生器生成每个需要下载请求。
如果你不熟悉的扭曲,你会发现模型需要一点时间来适应,但它是如此值得的。在这种情况下,我希望它采取最小的CPU和内存开销,但你不必担心文件描述符。这是相当容易的角度经纪人和农场工作调配出到多台机器,你应该找到自己需要更多的文件描述符,或者如果你有多个连接在其上,你想它拉下来。
怎么样线程+队列,我喜欢这篇文章:实用线程编程与Python
每个作业可以用适当的工具来完成:)
您想使用Python进行压力测试S3 :),所以我建议找一个大体积的下载程序,并通过链接到它。
在Windows上我有安装ReGet程序(共享软件,从 http://reget.com )和创建经验经由COM接口下载任务。
当然有可能与可用接口的其他程序存在。
问候!