S3 statik web sitesi barındırma hizmeti oluşturmaya çalışıyorum, ancak AWS konsolunda ayarlanmış Content-Type
meta veri alanına sahip olmayan nesnelerimden herhangi birine 403 dönüyor gibi görünüyor. Bunu AWS CLI aracıyla nasıl yapacağımı anlayamıyorum. --metadata
seçeneği kullanarakAWS CLI ile S3'e yüklerken Content-Type'u nasıl belirlerim?
çalışmak görünür:
$ 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"
}
}
Ama nesne üzerinde Content-Type
alan AWS konsolunun "Meta veri" bölümünde görünür değildir ve erişmeye çalışırken bir 403 almak Dosya bir tarayıcıda. o, hala AWS konsolunda bir Content-Type
meta veri alanı yoktur özel ContentType
mülkiyet çeşit ayarlamak için görünürken
$ 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": {}
}
, ne de yapabilirsiniz: --content-type
seçeneği kullanarak
da çalışmıyor Dosyaya bir tarayıcıda erişin.
Ayrıca benzer komutlar denedim (aws s3 cp
, aws s3 sync
), şanssız. Herkese açık olarak okunabilir küme ilkesi var.
'--acl public-read 'parametresini çıkarırsam bu işe yaramaz. Kova politikamda yaptığım gibi, belirli bir IP aralığına erişimi kilitlerken bunu çalıştırmanın bir yolu var mı? –
Unutmayın, bu kurulum zaten tam olarak istediğim şeyi yapıyor görünür: ACL nesnesi "public-read" olarak ayarlanmış olsa da, kova ilkesi hala geçerli. –