对于玩过七牛云存储的人来说,七牛的文档水平和sdk垃圾的钥要死,还经常出现错误。经常关键性的地方没有代码文档,靠自己慢慢测试,废话不多说了。
处理结果另存(saveas)是云处理操作,将云处理结果作为资源保存到指定空间内,并赋以指定Key。保存成功后,下一次可直接通过指定Key来访问该资源,以达到提升下载速度的效果。
官方接口规格:saveas/<EncodedEntryURI>/sign/<Sign>
以下是PHP代码使用saveas云处理生成图片缩略图。[break]
图片原始地址(七牛二级域名):http://xzyres.qiniudn.com/Tulips.jpg
图片原始地址(绑定自己的域名):http://pic.myxzy.com/Tulips.jpg
1、在下载URL(不含Scheme部分,即去除http://)后附加saveas接口(不含签名部分):
NewURL = URL + "|saveas/<EncodedEntryURI>"
<EncodedEntryURI>值获取:
entry = '<Bucket>:<Key>'
encodedEntryURI = urlsafe_base64_encode(entry)
urlsafe_base64_encode函数说明:URL安全的Base64编码适用于以URL方式传递Base64编码结果的场景。该编码方式的基本过程是先将内容以Base64格式编码为字符串,然后检查该结果字符串,将字符串中的加号+换成中划线-,并且将斜杠/换成下划线_,同时尾部保持填充等号=。
2、使用SecretKey对新的下载URL进行HMAC1-SHA1签名:
Sign = hmac_sha1(SecretKey, NewURL)
3、对签名进行URL安全的Base64编码:
EncodedSign = urlsafe_base64_encode(Sign)
4、在新的下载URL后拼接签名参数:
FinalURL = "http://"+NewURL + "/sign/<AccessKey>:<EncodedSign>"
<?php //urlsafe_base64_encode函数 function urlsafe_base64_encode($data) { $data = base64_encode($data); $data = str_replace(array('+','/'),array('-','_'),$data); return $data; } $accessKey = '************************'; $secretKey = '************************'; //生成EncodedEntryURI的值 $entry='xzyres:thum-Tulips.jpg';//<Key>为生成缩略图的文件名 $encodedEntryURI=urlsafe_base64_encode($entry);//生成的值:eHp5cmVzOnRodW0tVHVsaXBzLmpwZw== //使用SecretKey对新的下载URL进行HMAC1-SHA1签名 $newurl_1 = "pic.myxzy.com/Tulips.jpg?imageView/2/w/200/h/200|saveas/".$encodedEntryURI; $newurl_2 = "xzyres.qiniudn.com/Tulips.jpg?imageView/2/w/200/h/200|saveas/".$encodedEntryURI; $sign_1 = hash_hmac("sha1", $newurl_1,$secretKey, true); $sign_2 = hash_hmac("sha1", $newurl_2,$secretKey, true); //对签名进行URL安全的Base64编码 $encodedSign_1 = urlsafe_base64_encode($sign_1); $encodedSign_2 = urlsafe_base64_encode($sign_2); //最终得到的完整下载URL $finalURL_1 = "http://".$newurl_1."/sign/".$accessKey.":".$encodedSign_1; $finalURL_2 = "http://".$newurl_2."/sign/".$accessKey.":".$encodedSign_2; ?>
云处理API连接:
处理后可以通过缩略图key来访问了
自己域名直接访问缩略图key:http://pic.myxzy.com/thum-Tulips.jpg
七牛二级域名访问缩略图key:http://xzyres.qiniudn.com/thum-Tulips.jpg