Yii 2.0集成七牛云

6 篇文章 0 订阅

背景知识:

  1. 七牛云就是我们常说的图床。什么是图床?可以简单理解为是一种存储图片资源的服务器。
  2. 本文基于Yii2简单介绍七牛云的使用

1.首先在七牛云平台创建账户:传送门

2.登陆账户之后,点击头部菜单管理控制台,进入之后,点击左侧菜单存储对象:

3.点击新建存储空间,填写响应的信息,如下仅做参考:

4.创建好应用之后,接着我们要生成密钥:点击右上角的个人面板,再点击密钥管理,进入页面之后,点击右下角的创建密钥即可:

5.最后我们还需要一个信息那就是资源的域名,可以在新建的存储空间中看到:

 

如上信息都配置成功之后,我们讲解代码的实现:首先第一步安装Yii2的七牛云扩展,具体的安装方式可以参考这篇博客传送门,安装成功之后,我们在配置文件params.php中增加如下配置:


'qn_ak'=>'你自己的Ak',
'qn_sk'=>'你自己的AS',
'qn_domain'=>'资源域名',
'qn_bucket'=>'存储空间名称', 


以下是一个简单地demo:

use crazyfd\qiniu\Qiniu;

$qiniu=new Qiniu(
    \Yii::$app->params['qn_ak'],
    \Yii::$app->params['qn_sk'],
    \Yii::$app->params['qn_domain'],
    \Yii::$app->params['qn_bucket'],
    'east_china' 
);
//注意第五个参数,由于我们的存储空间创建的时候选择是华东的,因此传入的字符串的是'east_china',
//具体可选值是哪些,可以查看源代码Qiniu.php
/* $arr = [
            //华东
            'east_china' => [
                'up' => array("up.qiniup.com", 'up-nb.qiniup.com', 'up-xs.qiniup.com'),
            ],
            //华北
            'north_china' => [
                'up' => array('up-z1.qiniup.com'),
            ],
            //华南机房
            'south_china' => [
                'up' => array('up-z2.qiniup.com', 'up-gz.qiniup.com', 'up-fs.qiniup.com'),
            ],
            //北美机房
            'north_america' => [
                'up' => array('up-na0.qiniup.com'),
            ]
        ];
*/

//上传操作
//生成一个唯一标识,这个key用来标识你上传的资源
$key=md5(uniqid(mt_rand(),true));
try{
    $qiniu->uploadFile($_FILES['Goods']['tmp_name']['picture'],$key);
    $url='http://'.$qiniu->getLink().$key;
    return $url; //之后可以通过这个$url访问到刚上传的资源
}catch(\Exception $e){
    return false;
}

//删除操作
try{
    //删除对应的资源
    $qiniu->delete($key);
    return true;
}catch(\Exception $e){
    throw $e;
}

最后补充一点:有时候我们会有缩略图这种需求,例如缩略图要求尺寸是300*400,传统的做法就以原图为基础做裁剪,然后再生成一张图片,但是在七牛云中,我们可以使用如下的方案:

例如生成如下这样子的样式,并命名为small:

假设我们上传了一张图片并且访问路径是:http://p15o5mswx.bkt.clouddn.com/00113d3c6cb4cf3c84773711a8162b47,我们完全不需要再生成一张缩略图并上传至七牛云,而可以直接使用我们刚刚设置的样式在原来的图片上进行访问,例如:http://p15o5mswx.bkt.clouddn.com/00113d3c6cb4cf3c84773711a8162b47-small

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值