You need to enable JavaScript to run this app. 如何实现S3跨桶复制时将对象同步到目标桶的指定子目录
优惠活动
大模型
产品
解决方案
定价
更多

如何实现S3跨桶复制时将对象同步到目标桶的指定子目录

S3源桶全量同步到目标桶指定子目录的实现方案

一次性全量迁移(推荐简单场景使用)

直接使用AWS CLI的s3 sync命令即可满足需求,命令示例如下:

aws s3 sync s3://Bucket1/ s3://Bucket2/Folder1/Folder2/

该命令会自动递归拉取源桶所有对象,保留对象的相对路径拼接到目标前缀下,完全匹配你要求的路径映射规则。

额外可选参数

  • 执行前加--dryrun参数预览同步结果,确认路径符合预期再正式执行
  • 如需保留源端ACL、存储类配置,可追加--acl bucket-owner-full-control、--storage-class COPY参数
  • 支持用--exclude "*.log"、--include "2024/*"类参数过滤需要同步的对象范围

持续增量自动同步(适合需要实时同步的场景)

S3原生跨桶复制规则不支持自定义目标前缀,你可以搭配S3事件通知+Lambda实现自动同步:

  1. 先按上面的CLI同步方案完成所有存量对象的迁移
  2. 为源桶Bucket1配置S3事件通知,触发条件为「对象创建/修改/删除」,触发目标设置为Lambda函数
  3. Lambda函数逻辑实现:
    • 解析S3事件拿到源对象的键名
    • 调用S3 CopyObject接口,将源对象复制到目标路径Folder1/Folder2/{源对象键名}
    • 如需同步删除操作,匹配源端对象删除事件调用目标端对应路径的DeleteObject接口即可
  4. 为Lambda执行角色配置对应IAM权限:源桶的s3:GetObject权限、目标桶指定前缀下的s3:PutObject、s3:DeleteObject权限

超大规模桶同步(适合对象量百万级以上的场景)

如果源桶容量大、对象数量多,CLI同步效率低,可以使用AWS S3 Batch Operations批量操作功能:

  • 首先生成源桶的S3对象清单报告
  • 创建S3批量操作任务,操作类型选择复制,统一指定目标前缀为Folder1/Folder2/
  • 平台会分布式调度执行复制任务,支持进度追踪、失败重试,比手动执行CLI效率高数十倍

内容的提问来源于stack exchange,提问作者Cyberdogs7

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 10:45:03