AWS Boto3 S3 копировать, не копируя теги - PullRequest
0 голосов
/ 23 марта 2020

У меня есть функция, которая изменяет класс хранения объекта S3. Функция работает, за исключением того, что теги не копируются


        def to_deep_archive(s3_key):
        '''
        Set the storage to DEEP_ARCHIVE
        Copied from https://stackoverflow.com/questions/39309846/how-to-change-storage-class-of-existing-key-via-boto3
        '''
        s3 = boto3.client('s3')

        # Source data to move to DEEP_ARCHIVE
        copy_source = {
                'Bucket' : BUCKET,
                'Key' : s3_key
        }

        # TODO : encryption
        # convert to DEEP_ARCHIVE by copying
        s3.copy(
                copy_source,
                BUCKET,
                s3_key,
                ExtraArgs = {
                        'StorageClass' : 'DEEP_ARCHIVE',
                        'MetadataDirective' : 'COPY',
                        'TaggingDirective' : 'COPY',
                        'ServerSideEncryption' : 'AES256'
                }
        )


Не было сгенерировано исключение. Моя политика ролей выглядит примерно так:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObjectTagging",
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:PutObjectTagging",
                "s3:ReplicateTags"
            ],
            "Resource": "arn:aws:s3:::my_bucket/*"
        }
    ]
}

Моя политика сегментов выглядит следующим образом:

        {
            "Sid": "Stmt1492757001621",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::my_account:role/my_role"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:PutObjectTagging",
                "s3:DeleteObjectTagging",
                "s3:ListBucket",
                "s3:ReplicateTags"
            ],
            "Resource": [
                "arn:aws:s3:::my_bucket/*",
                "arn:aws:s3:::my_bucket"
            ]
        }

Есть ли что-то еще, что мне нужно сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...