上传文件到七牛云

上传文件到七牛云

因为最近一个项目需要加载的图片文件较大也比较多,导致页面加载比较忙,所以选择使用七牛云,这里记录一下,我是写在了laravel的一个公共方法里面的,方便以后调用!

顺便提一下七牛云的CDN:

CDN的工作原理就是将您源站的资源缓存到位于全国各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、分担源站压力,保证用户访问资源的速度和体验。

你如果问我CDN是什么,我会说“我把坚果从一个距离他们很远的筐里盛出来,放在距离他们很近的眼前,让他们不用一次次起身费劲的去抓,而是坐在那儿就能够到”的行为,就是CDN。

我再举个例子。你在一个园区内工作,你直接访问网络的端口带宽被限定为了2M,这也就意味着你如果要下载一个蓝光资源,那基本是一个让人欲哭无泪的龟速,对吧。但如果有一个特别热门的资源,比如说最近的《复联4》和《权游8》,园区网内部的缓存设备,如果发现很多人都在用2M的带宽龟速下载同一个热门的资源的话,它就会把它缓存下来,这样的好处是,每个人都可以用内网中远远高于2M的带宽来进行下载。而且不用占用访问外网的带宽,同时目标网站的的服务器压力也小的多。

如果让我粗浅甚至不够准确的解释CDN的话,我更愿意用这样这样的更直接的方式来讲:“如果我们把某种网络资源,看成是某种路途遥远又曲折的,很多人都喜欢吃的美食,CDN就是把他们一次性的空降到我们面前(并且假设可以共享且取之不尽),让我们轻而易举的大快朵颐”。

在我看来,CDN的本质是缓存,而内核中支撑它的互联网精神则是共享。

代码仅供参考:

<?php

	/* 引入七牛云所需类 */
	use Qiniu\Auth;
	use Qiniu\Storage\UploadManager;
	
	/**
     * [uploadQiniu 上传文件到七牛云服务器]
     * @param  [type] $file  [需要上传的文件]
     * @return [type] [description]
     */
    function uploadQiniu($file)
    {
    	//判断文件是否存在
        if (!$file) {
            return ['status' => false, 'msg'    => '文件不存在!', 'data'   => ''];
        }
        // 需要填写你的 Access Key 和 Secret Key,具体查看七牛后台
        $accessKey = config('qiniu.AccessKey');
        $secretKey = config('qiniu.SecretKey');
        // 构建鉴权对象
        $auth = new Auth($accessKey, $secretKey);
        // 要上传的空间,这是在你七牛后台设置的
        $bucket = config('qiniu.bucket');
        // 生成上传 Token
        $token = $auth->uploadToken($bucket);
        // 要上传文件的本地路径
        $filePath = $file->getRealPath();
        //获取文件后缀名
        $ext = $file->getClientOriginalExtension();
        // 上传到七牛后保存的文件名,防止文件名相同,加密一下
        $key = md5(time().rand(1000,9999)) . '.' .$ext;
        // 初始化 UploadManager 对象并进行文件的上传。
        $uploadMgr = new UploadManager();
        // 调用 UploadManager 的 putFile 方法进行文件的上传。
        list($res, $err) = $uploadMgr->putFile($token, $key, $filePath);
        if ($err !== null) {
            return ['status' => false, 'msg'=>'上传失败!', 'data' => $err];
        } else {
            return ['status' => true, 'msg'    => '上传成功', 'data'   => $res];
        }
    }
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值