S3::getSignedPolicyURL PHP Method

getSignedPolicyURL() public static method

Get a CloudFront signed policy URL
public static getSignedPolicyURL ( array $policy ) : string
$policy array Policy
return string
    public static function getSignedPolicyURL($policy)
    {
        $data = json_encode($policy);
        $signature = '';
        if (!openssl_sign($data, $signature, self::$__signingKeyResource)) {
            return false;
        }
        $encoded = str_replace(array('+', '='), array('-', '_', '~'), base64_encode($data));
        $signature = str_replace(array('+', '='), array('-', '_', '~'), base64_encode($signature));
        $url = $policy['Statement'][0]['Resource'] . '?';
        foreach (array('Policy' => $encoded, 'Signature' => $signature, 'Key-Pair-Id' => self::$__signingKeyPairId) as $k => $v) {
            $url .= $k . '=' . str_replace('%2F', '/', rawurlencode($v)) . '&';
        }
        return substr($url, 0, -1);
    }