Amazon-s3: произошла ошибка (InvalidRequest) при вызове операции putObject. Указание как сохраненных списков управления доступом, так и разрешений заголовка не допускается `

#jenkins #amazon-s3

#дженкинс #amazon-s3

Вопрос:

Я пытаюсь скопировать файлы с сервера Jenkins на сервер s3, но получаю ошибку An error occurred (InvalidRequest) when calling the PutObject operation .

Существуют варианты aws:

 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::hhhh-backups/*"
        }
    ]
}   
 

Команда с помощью with я пытаюсь скопировать:

 aws s3 cp allure-report/ s3://hhhh-backups --grants  read=uri=http://acs.amazonaws.com/groups/global/AllUsers --recursive
 
  • скриншот:
    введите описание изображения здесь

Я также добавил флаг acl bucket-owner-full-controller и получил другую ошибку:

An error occurred (InvalidRequest) when calling the PutObject operation: Specifying both Canned ACLs and Header Grants is not allowed

введите описание изображения здесь

Как ее устранить? В общем, мне нужно скопировать отчеты в файл s3 from Jenkins. Я не могу сделать это с помощью пользовательского интерфейса, я не могу выполнить это с помощью кода (поскольку у меня нет ключа доступа) и, наконец, я не могу выполнить это с помощью скрипта из aws cli . Кроме того, я не могу управлять aws опциями самостоятельно, но я могу попросить другого сделать это.

Ответ №1:

вы можете попробовать добавить acl флаг и установить его bucket-owner-full-control равным .

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

 aws s3 cp allure-report/ s3://hhhh-backups --acl bucket-owner-full-control --recursive 
 

для вашей справки :

  1. https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html

Комментарии:

1. Большое спасибо. Я обновил команду, и теперь у меня новая ошибка. Я изменил вопрос, можете ли вы его проанализировать?

2. не могли бы вы попытаться удалить --grant флаг и его значение read= … и повторите попытку с помощью just --acl flag