CLI
Когда я загружаю файл в хранилище через интерфейс командной строки, загрузка работает без проблем:
aws s3api put-object --bucket <mybucket> --key <myfile> --body <sourcefile>
Но попытка выполнить то же самое через PHP, с теми же учетными данными в том же сегменте, завершается неудачно с:
NOTICE: PHP message: [ERROR] Error executing "PutObject" on "https://mybucket.s3.eu-central-1.amazonaws.com/myfile";
AWS HTTP error: Client error: `PUT https://mybucket.s3.eu-central-1.amazonaws.com/myfile` resulted in a `403 Forbidden` response:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>F58846A9008809CA</RequestId>
<HostId>cDK3h9Lu0TzafGLJ5N2UwSCWnuRxQIYRDfybqlZ8VyX7mm6xJNvLTWq9sa3T0LHk89J4vymgxr4=</HostId>
</Error>
Ведро личное (по умолчанию), и у пользователя есть полный контроль . Запуск aws s3api get-object-acl --bucket <mybucket> --key <myfile>
возвращает:
{
"Owner": {
"ID": "87ff093h31e67fc19f4108d84a001b2adc06c0ee876c33h77feea701ed6ba"
},
"Grants": [
{
"Grantee": {
"ID": "87ff093h31e67fc19f4108d84a001b2adc06c0ee876c33h77feea701ed6ba",
"Type": "CanonicalUser"
},
"Permission": "FULL_CONTROL"
}
]
}
Каковы могут быть причины успеха в оболочке и сбоя с помощью сценария?