「Amazon CloudFront」:修訂間差異

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋
本頁面具有訪問限制。如果您看見此訊息,這代表您沒有訪問本頁面的權限。
 
行 3: 行 3:
== 範例 ==
== 範例 ==
=== signing ===
=== signing ===
<pre>
<syntaxhighlight lang="php">
<?php
<?php


行 44: 行 44:
    "Expires=${expires}&",
    "Expires=${expires}&",
    "Signature=${signature}&",
    "Signature=${signature}&",
    "Key-Pair-Id=${key_pair_id}\n";</pre>
    "Key-Pair-Id=${key_pair_id}\n";</syntaxhighlight>


== 外部連結 ==
== 外部連結 ==

於 2018年2月28日 (三) 02:16 的最新修訂

Amazon CloudFrontAWS所推出的CDN服務。

範例

signing

<?php

$key_pair_id = 'APKA...';
$pem_file = '/path/secret.pem';
$resource = 'http://test2-cdn.gslin.org/test.txt';

$expires = time() + 3600;

$json_str = json_encode(
    array(
        'Statement' => array(
            array(
                'Resource' => $resource,
                'Condition' => array(
                    'DateLessThan' => array(
                        'AWS:EpochTime' => $expires
                    )
                )
            )
        )
    ),
    JSON_UNESCAPED_SLASHES
);

$buf = file_get_contents($pem_file);
$key = openssl_get_privatekey($buf);

openssl_sign($json_str, $signed_policy, $key, OPENSSL_ALGO_SHA1);

openssl_free_key($key);

$signature = str_replace(
    array('+', '=', '/'),
    array('-', '_', '~'),
    base64_encode($signed_policy)
);

echo "${resource}?",
    "Expires=${expires}&",
    "Signature=${signature}&",
    "Key-Pair-Id=${key_pair_id}\n";

外部連結