【问题标题】:BOTO3 S3 file copy blocking or non blocking?BOTO3 S3 文件复制阻塞还是非阻塞?
【发布时间】:2021-12-26 11:03:25
【问题描述】:

BOTO3 S3 文件copy 是阻塞还是非阻塞?我也可以在复制期间向目标对象添加额外的元数据。

【问题讨论】:

    标签: amazon-web-services amazon-s3 boto3


    【解决方案1】:

    它正在阻塞。我不是从文档中了解到这一点的,而是通过查看 source code for TransferManager,这是起作用的。

    如果您想为目标提供新的元数据,请使用ExtraArgs 参数。请注意,支持的参数是有限的,并且名称与您预期的不同(例如,ContentType 而不是 Content-Type)。

    但是,我不建议您使用copy(),因为它通过将文件下载到您的客户端然后上传来工作。这会导致延迟、出错的可能性,并可能增加数据传输的成本。

    相反,如果您要在 S3 上复制文件,请使用 copy_object()。您仍需支付数据传输费用,但副本将完全在 S3 内执行,因此速度要快得多。

    【讨论】:

    • 非常感谢您的回答。但据我所知,copy_object() 的文件大小限制为 5GB,否则您必须配置多部分。你有这方面的经验吗?
    • @MinuddinAhmedRana - 我已经完成了多部分上传,但没有进行多部分复制。但它看起来很简单:唯一的区别是您调用upload_part_copy() 而不是upload_part()。我认为在复制时使用尽可能大的部分大小是有意义的,这与上传不同(重试和获得反馈的能力通常比较低带宽的连接更重要)。
    猜你喜欢
    • 1970-01-01
    • 2012-11-13
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2016-07-06
    相关资源
    最近更新 更多