阿里云_OSS_URL签名算法_PHP版

<?php 
function SignatureUrl(){

$ak="AccessKeyID";

$sk="AccessKeySecret";

// bucket域名
// 注意: http:// 以及 / 结尾
$domain="http://beyond-cubic.oss-cn-shenzhen.aliyuncs.com/";

$expire=time()+3600;

$bucketname="beyond-cubic";

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



$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";
return $url;

}


echo SignatureUrl();
 ?>

​生成Url效果如下:

http://beyond-cubic.oss-cn-shenzhen.aliyuncs.com/cubic_00.mp4?OSSAccessKeyId=LTAI2qHl9FiBH0pw&Expires=1569195056&Signature=vs9jkArdtroCecLI6MKan9%2FiyEg%3D