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

如何通过CloudFormation规则将S3指定文件夹内容复制到另一S3文件夹

实现S3指定文件夹内容跨桶复制(CloudFormation方案)

你的问题出在未配置目标前缀转换——默认情况下,S3复制会保留源对象的完整路径(包括前缀from_A/),所以才会把整个文件夹结构复制到目标桶。通过CloudFormation完全可以实现你的需求,核心是在复制规则中指定目标前缀,并确保IAM权限匹配。

CloudFormation模板示例

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  SourceBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: ABC-Inbound
      ReplicationConfiguration:
        Role: !GetAtt ReplicationRole.Arn
        Rules:
          - Status: Enabled
            Priority: 1
            DeleteMarkerReplication:
              Status: Disabled
            Filter:
              Prefix: "from_A/"
            Destination:
              Bucket: !GetAtt TargetBucket.Arn
              Prefix: "A_data/" # 将源前缀替换为目标文件夹路径
  TargetBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: workloads
  ReplicationRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: s3.amazonaws.com
            Action: sts:AssumeRole
      Policies:
        - PolicyName: S3ReplicationPermissions
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - s3:GetReplicationConfiguration
                  - s3:ListBucket
                Resource: !GetAtt SourceBucket.Arn
              - Effect: Allow
                Action:
                  - s3:GetObjectVersionForReplication
                  - s3:GetObjectVersionAcl
                  - s3:GetObjectVersionTagging
                Resource: !Sub "${SourceBucket.Arn}/from_A/*"
              - Effect: Allow
                Action:
                  - s3:ReplicateObject
                  - s3:ReplicateDelete
                  - s3:ReplicateTags
                Resource: !Sub "${TargetBucket.Arn}/A_data/*"

关键配置说明

  • 源前缀过滤:Filter.Prefix: "from_A/"确保只处理源桶中该文件夹下的对象,不会扫描其他路径。
  • 目标前缀转换:Destination.Prefix: "A_data/"告诉S3将源对象路径中from_A/之后的部分,直接追加到目标桶的A_data/路径下。例如源对象from_A/report.pdf会被复制为A_data/report.pdf,而非保留原前缀结构。
  • 最小权限原则:IAM角色的权限严格限定在源前缀和目标前缀范围内,避免不必要的权限授予。

额外注意事项

  • 该配置仅对新创建或修改的对象生效,历史存量对象需要手动同步,可使用AWS CLI命令:
    aws s3 sync s3://ABC-Inbound/from_A/ s3://workloads/A_data/
    
  • 此方案仅适用于同一区域、同一账户的S3存储桶,完全匹配你的需求场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:03:12