Я пытаюсь настроить статический хостинг веб-сайтов S3, но он возвращает 403 на любой из моих объектов, у которых нет поля метаданных Content-Type
, установленного в консоли AWS. Я не могу понять, как это сделать с помощью инструмента AWS CLI.
С помощью параметра --metadata
появляется сообщение:
$ aws s3api put-object --bucket <bucket> --key foo.html --body foo.html --metadata Content-Type=text/html
{
"ETag": "\"fd5ff7743e5ed1e1c304eb1c34e8e39f\""
}
$ aws s3api head-object --bucket <bucket> --key foo.html
{
"AcceptRanges": "bytes",
"ContentType": "binary/octet-stream",
"LastModified": "Wed, 15 Apr 2015 06:39:48 GMT",
"ContentLength": 189,
"ETag": "\"fd5ff7743e5ed1e1c304eb1c34e8e39f\"",
"Metadata": {
"content-type": "text/html"
}
}
Но поле Content-Type
объекта не отображается в разделе "Метаданные" консоли AWS, и я получаю 403 при попытке доступа к файлу в браузере.
Использование опции --content-type
также не работает:
$ aws s3api put-object --bucket <bucket> --key foo.html --body foo.html --content-type text/html
{
"ETag": "\"fd5ff7743e5ed1e1c304eb1c34e8e39f\""
}
$ aws s3api head-object --bucket <bucket> --key foo.html
{
"AcceptRanges": "bytes",
"ContentType": "text/html",
"LastModified": "Wed, 15 Apr 2015 06:46:49 GMT",
"ContentLength": 189,
"ETag": "\"fd5ff7743e5ed1e1c304eb1c34e8e39f\"",
"Metadata": {}
}
В то время как кажется, что установлено какое-то специальное свойство ContentType
, в консоли AWS по-прежнему нет поля метаданных Content-Type
, а также я не могу получить доступ к файлу в браузере.
Я также пробовал подобные команды (aws s3 cp
, aws s3 sync
), не повезло. У меня политика ведра установлена на общедоступную.