在s3中复制密钥时,boto3是否执行GET和PUT操作?

2024-06-24 13:24:15 发布

您现在位置:Python中文网/ 问答频道 /正文

情况如下: 我们使用一个数据加载服务从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')

当使用boto3's copy method时,是否有任何理由认为客户端正在下载与密钥相关联的文件,然后在新的otherbucket/otherkey位置执行PUT操作?在

我知道s3中的任何操作都是要收费的,所以我基本上是要确保我们不会因为这些操作而收费,也不会像那样浪费我们自己的带宽。在


Tags: 文件数据方法目录脚本jsonsource客户机
1条回答
网友
1楼 · 发布于 2024-06-24 13:24:15

这是一个PUT+Copy。它是一个发送到目标bucket的请求,指定源bucket和object。在

{bucket{2>仍然向目标发送一个bucket,但是这个bucket并没有向目标发送一个^/fetch请求。在

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

参见:Copying Objects in a Single Operation

相关问题 更多 >