2

У меня есть следующая конфигурация CORS для S3, чтобы использовать один из моих ведер как статический веб-сайт хостинг:S3 POST запрос на S3 с ответом 405

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
    <CORSRule> 
     <AllowedOrigin>*</AllowedOrigin> 
     <AllowedMethod>GET</AllowedMethod> 
     <AllowedMethod>POST</AllowedMethod> 
     <MaxAgeSeconds>3000</MaxAgeSeconds> 
    </CORSRule> 
</CORSConfiguration> 

Тогда я следующее Edit Перенаправление правил:

<RoutingRules> 
    <RoutingRule> 
    <Condition> 
     <KeyPrefixEquals>abc</KeyPrefixEquals> 
    </Condition> 
    <Redirect> 
     <HostName>myec2instance.com</HostName> 
    </Redirect> 
</RoutingRule> 

То, что я хочу сделать, это когда S3 получает POST к/а перенаправляют запрос и тело запроса к моему примеру ec2. Правило перенаправления работает правильно (я смог проверить это, переключив POST на запрос GET), но по любой причине S3 возвращает HTTPResponse 405, когда запрос является POST. Любые идеи почему?

+0

ссылок можно найти на эту ошибку после редиректа, кажется, указывают, что это произойдет, если перенаправить либо в папку вместо файла или папки, которая не имеет значения по умолчанию набор документов. Это либо из этих? – monkeymatrix

+0

Привет @monkeymatrix спасибо за ваш ответ! Моя проблема не в операции перенаправления (по крайней мере, я так думаю). Проблема для меня в том, что S3 как статический веб-узел не позволяет мне отправлять HTTP POST из javascript, который у меня есть на веб-странице. Что я пытаюсь сделать, так это создать целевую страницу, на которой пользователи могут оставить свой контакт, а затем отправить веб-страницу на S3 по почте и, наконец, S3 перенаправляет экземпляр ec2, который сохраняет отправленные json-данные. – user1126167

ответ

9

Это не относится к CORS - это S3. Конечные точки сайта S3 предназначены только для GET и HEAD. Любое другое должно быть отклонено до того, как будут проверены правила перенаправления.

Сайт Endpoint

поддерживает только GET и запросы ГОЛОВА на объектах.

http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html

+0

Спасибо, много Майкл. Я полностью пропустил это. – user1126167

+0

Значит ли это, что вы не можете использовать хостинг веб-сайтов S3 для отправки запросов POST? – Jake

+0

@Jake - правильно ... хотя я не уверен, почему вы хотите «переслать» (перенаправить?) «POST», потому что это означало бы повторную отправку тела запроса в новое местоположение, время и пропускную способность на стороне браузера. Возможно, вы захотите создать новый вопрос, описав свой вариант использования и какую проблему вы пытаетесь решить. Запросы «POST» к конечным точкам веб-сайта S3, даже при наличии соответствующего правила перенаправления, выполняются с помощью «405 Method Not Allowed». –