Подписанные URL-адреса AWS Cloudfront в PHP - PullRequest
0 голосов
/ 26 ноября 2018

В настоящее время я использую пользовательскую политику AWS Cloudfront для создания подписанных URL-адресов.Дело в том, что ключ ресурса (объекты в корзине s3), похоже, не работает с использованием подстановочного знака.Это работает для отдельного ключа ресурса, хотя.Пожалуйста, найдите фрагмент кода.Любая помощь по этому вопросу будет высоко ценится.

    <?php
use Aws\CloudFront\CloudFrontClient;
$cloudfront = new CloudFrontClient([

    'region' => 'xx-xxxx-x',
    'version' => 'latest',

    ]);
$organization_id = (string)$_SESSION['organization_id'];
$baseurl = 'https://xxxxxxxxxxxxxx.xxxxxxxxxx.xxx/folder1/';
$resourceKey = '/folder2/folder3/file1.csv';
//$resourceKey = '/folder2/folder3/*';
$url = $baseurl.$organization_id.$resourceKey;
$expires = time() + 14400;
$customSigningPolicy = <<<POLICY
{
    "Statement": [
        {
            "Resource": "{$url}",
            "Condition": {
                "DateLessThan": {"AWS:EpochTime": {$expires}}
            }
        }
    ]
}
POLICY;

$signedUrl = $cloudfront->getSignedUrl([
    'url' => $url,
    'policy' =>  $customSigningPolicy,
    'key_pair_id' => 'XXXXXXXXXXXXXXXXXXXX',
    'private_key' => './pk-XXXXXXXXXXXXXXXXXXXX.pem'
]);

echo $signedUrl;
?>
...