七牛云Fetch第三方资源 并获取url

本文分享了使用七牛云的fetch功能进行图片抓取和上传的经验,包括解决PHPSDK问题和实现代码示例。作者吐槽了七牛云文档的组织方式,但对其服务表示满意。

七牛云的图片加速一直在用,好用没得说,最近想采集一些图片,然后上传,别人调用的功能,所以就下载到了七牛,也就用到了七牛的fetch功能,这步搞定之后,七牛的文档好乱,好多相关的东西不在一起写,要分别找,而且描述的不清楚,另外吐槽下,给的PHP SDK也有点问题,返回bad token。。。。但是七牛云的服务还是很好的,嘿嘿

话不多说,下面上代码,两个函数,大家参考

注册链接: https://portal.qiniu.com/signup?code=3lp4xsc4igf2q

下载域名中.根据自己所在区进行切换

iovip.qbox.me 华东
iovip-z1.qbox.me 华北
iovip-z2.qbox.me 华南
iovip-na0.qbox.me 北美

$config = array(
        'secrectKey'     => 'sk', //七牛服务器
        'accessKey'      => 'ak', //七牛用户
        'domain'         => 'cdn域名', //七牛域名
        'bucket'         => 'bucket', //空间名称
    );
$url = 'http://devtools.qiniu.com/qiniu.png';
$key = time() . '.png';
$url=qiniuFetch($url,$key,$config);
/**
 * @param $url 网络图片
 * @param $key 保存的路径
 * @param $config 配置参数
 */
function qiniuFetch($baseurl,$key='',$config){
    $iovip='iovip-z1.qbox.me';
    $encodedURL = base64_urlSafeEncode($baseurl);
    $bucket =empty($key)?$config['bucket']: $config['bucket'].':'.$key;
    $encodedEntryURI = base64_urlSafeEncode($bucket);
    $url = '/fetch/' . $encodedURL . '/to/' . $encodedEntryURI;

    $sign = hash_hmac('sha1', $url . "\n", $config['secrectKey'], true);
    $token = $config['accessKey'] . ':' . base64_urlSafeEncode($sign);
    $header = array('Host: '.$iovip, 'Content-Type:application/x-www-form-urlencoded', 'Authorization: QBox ' . $token);
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'http://'.$iovip . $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_POSTFIELDS, "");
    $result = json_decode(curl_exec($curl), true);
    curl_close($curl);
    return !empty($result['key']) ? $config['domain'] . $result['key'] : false;
}
function base64_urlSafeEncode($data){
    $find = array('+', '/');
    $replace = array('-', '_');
    return str_replace($find, $replace, base64_encode($data));
}

 

转载于:https://my.oschina.net/xiaogg/blog/2878621

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值