Amazon S3 не разрешает доступ к файлам внутри контроллера php после добавления политики корзины - PullRequest
0 голосов
/ 28 февраля 2020

Я работаю с s3 и php. Я сохранил весь контент моего сайта на s3. Чтобы защитить этот контент, я создал политику S3 Bucket. Политика гласит: если контент загружается с моего сайта, он должен загружаться. В противном случае нет. Работает нормально. Но сейчас я столкнулся с одной проблемой. То есть в моем приложении есть функция генерации PDF-файла с некоторыми изображениями. Так что я делаю генерацию PDF внутри моего контроллера. После того, как пользователь нажмет на кнопку, он go перейдет к контроллеру и получит некоторые изображения из s3 в зависимости от условия, а затем создаст файл PDF. Но проблема внутри контроллера, изображения не загружаются, поэтому мой PDF-файл пуст. Эта проблема возникает из-за моей созданной политики ведра. Вот моя политика ведра.

{
"Version": "2012-10-17",
"Id": "http referer policy example",
"Statement": [
    {
        "Sid": "Explicit deny to ensure requests are allowed only from specific referer.",
        "Effect": "Deny",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::bucketname/*",
        "Condition": {
            "StringNotLike": {
                "aws:Referer": [
                    "http://www.mywebsite.com/*",
                    "http://mywebsite.com/*",
                ]
            }
        }
    }
]
}

Вот так я генерирую PDF.

$imgBaseUrl = 'https://bucketname.s3.amazonaws.com/img/imagename.png';
$fileName = $userDetails->first_name." ".$userDetails->last_name." (".$serviceDetails->service->name.") - ". date('Y-m-d') . ".pdf";
$this->set(compact('userDetails', 'serviceDetails', 'imgBaseUrl'));
$this->RequestHandler->renderAs($this, 'pdf', ['attachment' => $fileName]);

Здесь эти переменные имеют правильные данные. Там нет проблем с этими переменными.

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