В AWS CloudFront я установил это в: «Разрешенные методы HTTP» в области «Default Cache поведения Настройки»: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
Включение POST/PUT/DELETE на AWS CloudFront?
Мой CloudFront связан с ведром AWS S3. Поэтому я конфигурация AWS S3 CORS к:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Моей текущей политике AWS S3 ведра:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<bucket_name_here>/*"
}
]
}
К сожалению, при запуске через curl
я получаю:
$ curl -I -s -X POST -H "Origin: www.example.com" [hash_here].cloudfront.net
HTTP/1.1 405 Method Not Allowed
Content-Type: application/xml
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, PUT, POST, DELETE, HEAD
Access-Control-Max-Age: 3000
Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
Allow: GET, DELETE, HEAD, PUT
Date: Sun, 01 Mar 2015 14:12:26 GMT
Server: AmazonS3
X-Cache: Error from cloudfront
Via: 1.1 5896eef8502a96757950c7d389f2015c.cloudfront.net (CloudFront)
X-Amz-Cf-Id: uBK_gStEvSTWypvU8_YYjtfjC2UzdR3Ff_cDLitMaeUBNZ9AgrSkJg==
Из ответа, который вы опубликовали, похоже, что ошибка возвращается S3, а не CloudFront. Правильно ли вы настроили разрешения доступа к ведром, чтобы CloudFront мог отправлять POST там? –
Я думаю, что сделал, все, что я сделал, изложено в моем вопросе. Если мне не хватает шага, тогда укажите, где и я буду принимать рабочее решение как ответ :) –
Взгляните сюда: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private- содержание ограничивающего-доступ-к-s3.html # частно-контент-предоставление-разрешений-на-OAI. Он говорит о разрешении на чтение объекта, но я думаю, вам может потребоваться явно разрешить разрешение на запись для Origin Access Identity, которое вы используете для CloudFront –