1.根据域名本有的access key ID来生成 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"; }
转载请注明:有客帮 » PHP实现OSS的签名URL