在 s3 中复制密钥时,boto3 是否先执行 GET,然后再执行 PUT?

cdh*_*son 1 python amazon-s3 boto boto3

情况如下:我们正在使用数据加载服务从 s3 中的目录中提取大约 1TB 的 json 文件。我们希望将这些文件批量加载到摄取目录中,以便我们的加载服务不会被淹没。我们正在使用使用 boto3 客户端复制方法的本地 python 脚本进行批处理。这是 boto3 文档中的示例:

import boto3
s3 = boto3.resource('s3')
copy_source = {
    'Bucket': 'mybucket',
    'Key': 'mykey'
}
s3.meta.client.copy(copy_source, 'otherbucket', 'otherkey')
Run Code Online (Sandbox Code Playgroud)

当使用boto3 的复制方法时,是否有任何理由认为客户端正在下载与密钥关联的文件,然后将 PUT 放入新位置otherbucket/otherkey

我知道 s3 中的任何操作都是收费的,所以我基本上试图确保我们不会为这些操作付费,并且我们不会像这样浪费我们自己的带宽。

Mic*_*bot 5

这是一个PUT+Copy。这是发送到目标存储桶的单个请求,指定源存储桶和对象。

这不是下载/上传,但您仍然需要为PUT针对目标存储桶的请求以及GET目标存储桶发送到源存储桶以获取内容的请求付费。

数据在 S3 内部传输,因此不会使用您的 Internet 带宽,但如果源存储桶和目标存储桶位于不同区域,则源存储桶将按跨区域带宽计费。其计费费率低于“到互联网”的带宽费用。

请参阅:在单个操作中复制对象