全部产品
云市场

PHP实现OSS的签名URL

更新时间:2019-04-28 10:06:24

  1. 根据域名本有的AccessKeyId来生成

function Signatureurl(){

       $ak="ak";

       $sk="sk";

       $domain="http://www.a.com/";//图片域名或Bucket域名

       $expire=time()+3600;

       $bucketname="buname";

       $file="mulu/1.jpg@100h";//或者"mulu/1.jpg@!样式名或者 mulu/1.jpg”

       $StringToSign="GET\n\n\n".$expire."\n/".$bucketname."/".$file;

       $Sign=base64_encode(hash_hmac("sha1",$StringToSign,$sk,true));

       $url=$domain.urlencode($file)."?OSSAccessKeyId=".$ak."&Expires=".$expire."&Signature=".urlencode($Sign);

       echo $url."\n";

}

2. 根据临时账户密码安全token获取签名URL,目前只支持Bucket源域名及Bucket绑定的域名,图片服务域名暂时不支持临时账户ID来签名URL访问

function Signaturestsurl(){

       $ak="stsak";

       $sk="stssk";

       $token="token";

       $domain="http://www.a.com/";

       $expire=time()+3600;

       $bucketname="buname";

       $file="mulu/1.jpg";

       $StringToSign="GET\n\n\n".$expire."\n/".$bucketname."/".$file."?security-token=".$token;

       $Sign=base64_encode(hash_hmac("sha1",$StringToSign,$sk,true));

       $url=$domain.urlencode($file)."?OSSAccessKeyId=".$ak."&Expires=".$expire."&Signature=".urlencode($Sign)."&security-token=".urlencode($token);

       echo $url."\n";

}

如果问题还存在,请联系阿里云售后支持