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";
}
如果问题还存在,请联系阿里云售后支持。