如何在两个不同的帐户之间复制特定文件

2024-10-01 22:36:31 发布

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

我的companys3(companys3)bucket包含多个文件,例如file1file2file3。客户端S3 bucket(clients3)和一些我不知道的文件。你知道吗

我想要的是只打开file2companys3clients3的解决方案。你知道吗

我找到了如何复制/克隆整个存储桶的解决方案。但找不到任何只复制特定文件的文件。你知道吗

到目前为止,我通过Kubernetes pods复制文件,但文件变得太大,无法用这种方式处理(一个20GB的文件),所以我正在寻找解决方案,允许我们退出使用Kubernetes pods广告传输客户端。你知道吗


Tags: 文件客户端s3bucket方式解决方案file1kubernetes
3条回答

假设您有源和目标bucket。您需要正确地委派权限。你知道吗

源S3

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DelegateS3Access",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::DESTINATION_BUCKET_ACCOUNT_NUMBER:root"
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::SOURCE_BUCKET_NAME/*",
                "arn:aws:s3:::SOURCE_BUCKET_NAME"
            ]
        }
    ]
}

目的地S3

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::SOURCE_BUCKET_NAME",
                "arn:aws:s3:::SOURCE_BUCKET_NAME/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::DESTINATION_BUCKET_NAME",
                "arn:aws:s3:::DESTINATION_BUCKET_NAME/*"
            ]
        }
    ]
}

之后,您将使用AWS CLI

aws s3 sync s3://SOURCE-BUCKET-NAME s3://DESTINATION-BUCKET-NAME  source-region SOURCE-REGION-NAME  region DESTINATION-REGION-NAME

您还需要将IAM策略附加到源bucket以添加对目标帐户的访问。然后可以使用AWS CLI Check this guide复制bucket内容

您可以使用S3命令行(awscli)。你知道吗

aws s3 cp s3://COMPANY_BUCKET/filename s3://CLIENT_BUCKET/filename

相关问题 更多 >

    热门问题