【问题标题】:How to upload multiple files from directory to S3?如何将多个文件从目录上传到 S3?
【发布时间】:2023-03-05 11:24:01
【问题描述】:

我在 Ubuntu 上有一个目录,包含 340K 图像,总大小为 45GB!有没有一种有效的方法将它们全部转移到 DigitalOcean 的 S3 中?

我曾想过使用s3cmd puts3cmd sync,但我猜这会分别对每个文件执行put 操作。

任何想法将不胜感激!

【问题讨论】:

    标签: amazon-s3 digital-ocean s3cmd


    【解决方案1】:

    您可以使用https://github.com/mishudark/s3-parallel-put,它通过多线程实现更高的吞吐量,但仍将使用单个 PUT 操作上传单个文件,因为它并行发生,整个操作将更快完成。吞吐量取决于 CPU 数量、网络带宽等因素。

    【讨论】:

    • 感谢您的回复!我尝试传输 2700 个文件(400MB)作为测试,有 100 个进程并在 30 秒内完成!但有时,它会变慢并记录(BotoServerError: 503 Slow Down)。你知道如何计算出最好的进程数吗?
    • 一般来说,如果你的进程更受 CPU 限制,那么理想的情况是 N 核机器中的 N 进程/线程,在我们的例子中,因为它更受 IO 限制(n/w 是 IO)每个核心可以有 2 或 3 个线程,但不要有 10 或更多线程与 1 个核心的比率,大量时间将浪费在上下文切换上。 IO 绑定的理想方法是从 2*N(N -no of core) 线程开始并缓慢增加数量,直到达到最佳数量,之后性能开始下降,假设您有 2 或 4 核机器并运行 100 个进程那么它可能不是最佳的,减少计数。
    猜你喜欢
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多