我有很多图像文件,我想以最快、最有效的方式将它们全部(单个目录中大约一百万个)上传到 RackSpace Cloud 文件。
我正在使用python-cloudfiles
脚本上传它们,但是速度非常慢,我想了解不同的方法或 python 脚本代码。
可能是因为每次上传都使用一个连接,所以速度很慢。我认为将所有文件发送到 tar 中并解压目录是更好的方法。但云文件不支持这种方式。
谁知道还有其他办法吗?
答案1
对上传集进行分区,例如,如果命名在统计上足够平衡,则按文件名的首字母将其分为 26 个组,然后每个组并行使用一个上传器。
顺便说一句,一些云上传工具在上传大型文件集时存在内存使用问题,所以也要注意这一点……
答案2
如果这是一次性上传,我喜欢涡轮升降机。只需确保减少并发性以防止服务器负载过高(例如--cc 4
),并使用--internal
通过服务网络上传。
除非您降低并发性,否则 turbolift 将使用大量 CPU 和 RAM(认真地说:如果不这样做,您的服务器可能会崩溃!)。如果您拥有一台功能强大的服务器,这很好,但如果您拥有一台小型服务器,则不太好。