我最终购买了一个 SnowballEdge 设备并尝试将文件从该设备复制到我的系统。
设备上大约有 900 万个对象 @ 9TB。
最大的问题:
所有本地 aws cli 命令都有 1000 个对象的限制,因此我一次只能cp
、mv
、ls
或sync
1000 个对象。
当前解决方案:
就目前而言,我目前有 3 个脚本:
遍历 Snowball Edge 设备以获取对象名称
- 我试图用它们来引用它们,
ls --recursive
但它一次只列出 1000 个对象
- 我试图用它们来引用它们,
使用 #1 中的文件在我的本地计算机上创建一个目录系统,该目录系统与 Snowball Edge 设备中的目录系统相同
创建一个 python 脚本以使用 #1 中的文件在文件的迭代中调用 aws cli 命令。这是目前具有 88 个线程的多线程:
aws s3 cp --bucket bucketname+/+filename ./filename
- 这似乎有硬件限制,因为它通过了对写入操作有一点限制的 NIC
- 我们已开启
--quiet
关闭打印瓶颈
这个解决方案在 1 分钟内处理了大约 9GB,让我在大约 120 小时内进行传输。
问题:
有没有办法优化 AWS Snowball Edge 到本地设备的数据传输?