AWS S3 Bucket неожиданно отвечает на запрос POST с 403 Forbidden - PullRequest
0 голосов
/ 29 мая 2018

У меня есть веб-сайт, содержащий мое портфолио, который размещен в AWS S3 Bucket.Раньше все работало нормально, но вдруг раздел contact me перестал работать.

У меня есть файл javascript, contact_me.js со ссылкой на php-файл contact_me.php.Когда я пытаюсь нажать «Отправить», чтобы отправить письмо на мой адрес электронной почты, я получаю сообщение об ошибке

«mail / contact_me.php: 1 Не удалось загрузить ресурс: сервер ответил со статусом 403 (Запрещено) "

Когда я просто перемещаюсь в своем браузере по пути, я загружаю файл, поэтому у меня, кажется, есть доступ к нему.

Я также получил эту ошибку, пытаясьизменить разрешения в AWS, но безрезультатно:

jquery.min.js:4
POST http://ReplacedWithDummySite/mail/contact_me.php 403 (Forbidden)
send @ jquery.min.js:4
ajax @ jquery.min.js:4
submitSuccess @ contact_me.js:21
(anonymous) @ jqBootstrapValidation.js:76
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3

Строка, в которой происходит ошибка, выглядит следующим образом: "g.send (b.hasContent && b.data || null)"

Я ничего не сделал, чтобы это сломалось: раньше все работало нормально.Я проверил разрешения корзины, поскольку очевидно, что разрешения не являются общедоступными.Я установил все как общедоступный и придерживаюсь следующей политики хранения:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "AllowPublicRead",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::aws-website-dummyarn/*"
    }
 ]
}

1 Ответ

0 голосов
/ 29 мая 2018

У меня есть файл javascript, contact_me.js со ссылкой на файл php, contact_me.php.Когда я пытаюсь нажать «Отправить», чтобы отправить письмо на мой адрес электронной почты, я получаю сообщение об ошибке

... раньше оно работало просто отлично.

Вы можете быть под этим впечатлением, но на самом деле невозможно, чтобы эта установка работала на S3 ever .

S3 не поддерживает PHP или любой сервер-побочный язык.S3 никогда не поддерживал серверные сценарии.

Вы можете разместить статический веб-сайт в Amazon Simple Storage Service (Amazon S3).На статическом веб-сайте отдельные веб-страницы содержат статический контент.Они также могут содержать скрипты на стороне клиента.В отличие от этого, динамический веб-сайт опирается на обработку на стороне сервера, включая сценарии на стороне сервера, такие как PHP, JSP или ASP.NET.Amazon S3 не поддерживает серверные сценарии.

https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html

Тот факт, что вы можете загрузить файл, указывает только на то, что он хранится на S3.Веб-сервер, который фактически поддерживает PHP, не позволит вам загрузить файл - он выполнит файл на сервере и вернет сгенерированный вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...