Exemple #1
0
function UCloud_MakePrivateUrl($bucket, $key, $expires = 0)
{
    $err = CheckConfig(ActionType::GETFILE);
    if ($err != null) {
        return array(null, $err);
    }
    global $UCLOUD_PUBLIC_KEY;
    $public_url = UCloud_MakePublicUrl($bucket, $key);
    $req = new HTTP_Request('GET', array('path' => $public_url), null, $bucket, $key);
    if ($expires > 0) {
        $req->Header['Expires'] = $expires;
    }
    $client = new UCloud_AuthHttpClient(null);
    $temp = $client->Auth->SignRequest($req, null, QUERY_STRING_CHECK);
    $signature = substr($temp, -28, 28);
    $url = $public_url . "?UCloudPublicKey=" . $UCLOUD_PUBLIC_KEY . "&Signature=" . $signature;
    if ('' != $expires) {
        $url .= "&Expires=" . $expires;
    }
    return $url;
}
Exemple #2
0
function curl_file_get_contents($durl)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $durl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // 获取数据返回
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回
    $r = curl_exec($ch);
    curl_close($ch);
    return $r;
}
/*
 * 访问公有Bucket的例子
 */
$url = UCloud_MakePublicUrl($bucket, $key);
echo "download url(public): ", $url . "\n";
/*
 * 访问私有Bucket的例子
 */
$url = UCloud_MakePrivateUrl($bucket, $key);
echo "download url(private): ", $url . "\n";
/*
 * 访问包含过期时间的私有Bucket例子
 */
$curtime = time();
$curtime += 60;
// 有效期60秒
$url = UCloud_MakePrivateUrl($bucket, $key, $curtime);
$content = curl_file_get_contents($url);
echo "download file with expires: ", $url . "\n";