首页 > 代码学习

七牛云存储的云处理API接口-处理结果另存(saveas)

发布时间:2014-07-24 20:52:54 来源:星知苑 作者:星之宇

对于玩过七牛云存储的人来说,七牛的文档水平和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连接

1、自己绑定的域名:http://pic.myxzy.com/Tulips.jpg?imageView/2/w/200/h/200|saveas/eHp5cmVzOnRodW0tVHVsaXBzLmpwZw==/sign/_jtuLhteiFKvfIJfwVLGFbn6VXF01170Cack8X3g:-LFcA0dsY40QDzm6hMyqMzeVWTM=

2、七牛二级域名:http://xzyres.qiniudn.com/Tulips.jpg?imageView/2/w/200/h/200|saveas/eHp5cmVzOnRodW0tVHVsaXBzLmpwZw==/sign/_jtuLhteiFKvfIJfwVLGFbn6VXF01170Cack8X3g:lvYWRcntWQYeTEZtQG8rYQJsFpM=

 

处理后可以通过缩略图key来访问了

自己域名直接访问缩略图key:http://pic.myxzy.com/thum-Tulips.jpg

七牛二级域名访问缩略图key:http://xzyres.qiniudn.com/thum-Tulips.jpg

相关合集

  • 培养孩子的教育软件有哪些
培养孩子的教育软件有哪些

简介:孩子的未来都是现在很多家长的关注,但是有时候没有好的工具来帮助你进行对孩子的教育培养是完全没有用的,所以用学会利用手上的工具拿起手机就可以轻松的跟孩子互动,或者是直接辅导孩子的学习等等,小编整理目前最好也是评价相当不错的一些教育类的软件推荐。