S3 静的ウェブサイトホスティングを設定しようとしていますが、AWS コンソールでメタデータ フィールドが設定されていないオブジェクトに対しては 403 が返されるようですContent-Type
。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
、うまくいきませんでした。バケット ポリシーはパブリック読み取り可能に設定しています。
ベストアンサー1
の 2 番目の例は、--content-type
オブジェクトのコンテンツ タイプを設定する方法です。表示される JSON 応答は、Content-Type
HTTP 応答のヘッダーをContentType
キーにマッピングしていますが、これはContent-Type
オブジェクトの実際のヘッダーに対応しています。 を使用すると、コンソールのメタデータ セクションにコンテンツ タイプ値が表示されることを確認しました--content-type
。
$ aws s3api put-object --bucket bucket --key foo.json --body foo.json --content-type application/json --acl public-read
$ aws s3api head-object --bucket jamesls-test-sync --key foo.json
{
"AcceptRanges": "bytes",
"ContentType": "application/json",
"LastModified": "Wed, 15 Apr 2015 17:18:58 GMT",
"ContentLength": 0,
"ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
"Metadata": {}
}
また、curl を使用すると、コンテンツ タイプ ヘッダーが設定されていることがわかります。
$ curl -I https://bucket.s3.amazonaws.com/foo.json
HTTP/1.1 200 OK
x-amz-id-2: ZlSg1aDUBu7z+9gWUg24uRn2TioI0hk2AGBBZ1iVbpUkv8RTrHWovzbHxL/y21Qe
x-amz-request-id: 8568C73EB95EE5A6
Date: Wed, 15 Apr 2015 17:20:42 GMT
Last-Modified: Wed, 15 Apr 2015 17:18:58 GMT
ETag: "d41d8cd98f00b204e9800998ecf8427e"
Accept-Ranges: bytes
Content-Type: application/json
Content-Length: 0
Server: AmazonS3