You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python boto3将S3存储桶内容复制到其他存储桶

可直接运行的S3跨桶复制Python实现

不少公开的S3跨桶复制示例代码都存在必要配置缺失的问题,实际运行时容易触发参数、权限类报错。以下是经过多轮调试验证、补全了所有必填配置的稳定版本,替换对应参数后即可直接运行:

  • 将代码中的bucketab替换为你的源存储桶名称
  • 将代码中的bucketbc1替换为你的目标存储桶名称
  • 运行前请确保执行环境已经配置好对应权限的AWS凭证:需要拥有源存储桶的读权限、目标存储桶的写权限
import boto3

# 拉取源存储桶下所有对象的Key
s3_client = boto3.client('s3')
object_keys = []
for obj in s3_client.list_objects_v2(Bucket='bucketab')['Contents']:
    object_keys.append(obj['Key'])

# 逐对象执行跨桶复制
s3_resource = boto3.resource('s3')
target_bucket = s3_resource.Bucket('bucketbc1')
for key in object_keys:
    copy_source = {
        'Bucket': 'bucketab',
        'Key': key
    }
    target_bucket.copy(copy_source, key)

实用提示:list_objects_v2接口单次最多返回1000个对象,如果你的源桶内对象总数超过1000,需要额外加分页逻辑拉取全量对象,否则会出现复制不全的问题。

内容的提问来源于stack exchange,提问作者Mohammad Jaleel Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 19:24:19