七牛云对象储存方式

七牛云 - 对象储存

timg.jpg

对于现在有的程序员还在用本地去存储图片,还是有点费解的
1.占用自己的服务器资源
2.第三方服务商有提供数据分析方便观察
我们应该去合理分配我们的资源储存 七牛云-官方文档
希望这篇文章可以 唤醒 一些不更新自己技术的程序员们,去改变一下自己。

composer require zgldh/qiniu-laravel-storage
  • Laravel 里注册 服务提供者
zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class
  • 在框架自带的 config/filesystems.php 里的 disks 中新增如下选项
/**
 * 七牛云储存
 */
 'qiniu' => [
    'driver' => 'qiniu',
    'domains' => [
       'default' => env('QINIU_DEFAULT_URL'),   // 你的七牛域名
       'https' => 'dn-laravelacademy.qbox.me',  // 你的HTTPS域名
       'custom' => 'static.xxxx.xyz',           // 你的自定义域名
     ],
     'access_key' => env('QINIU_AK'),  // AccessKey
     'secret_key' => env('QINIU_SK'),  // SecretKey
     'bucket' => env('QINIU_BUCKET'),  // Bucket名字 (七牛云储存空间的名称)
     'notify_url' => '',  // 持久化处理回调地址
 ],

上面都是官方文档搬过来的,不重要。重要的是下面
首先我们要知道的是,申请注册认证完的七牛云有10G云储存空间,够测试用了
然后我们需要配置一下自己的域名解析,因为七牛云给的域名,默认30天他们就收回了,项目就会打不开任何图片了。

  • 七牛云 - 控制台 - 绑定域名


    七牛云-绑定域名.png
  • 配置域名解析七牛云的 CNAME (域名转发)

    域名解析.png

  • 修改七牛云外链默认域名


    外链默认域名.png

到这里,基本没有什么坑了,只是要注意 七牛云30天收回他们给的默认域名
下面贴一下Api上传图片代码和后台Form表单上传代码Demo:

  • Api 流程是:后端获取七牛云Token返给前端,前端带Token上传图片,后端代码:
第一种 Laravel - 官方方法:
use Illuminate\Support\Facades\Storage;

public function getToken()
{
    /**
     * 使用 Laravel 自带方法
     * 文件储存:https://laravel-china.org/docs/laravel/5.5/filesystem/1319
     */
    $disk = Storage::disk('qiniu'); // 获取七牛云配置
    $token = $disk->uploadToken(env('QINIU_BUCKET')); // 获取上传Token

    return $this->response->success($token);
}
第二种 七牛云 - SDK方法:
  • 前端接口获取七牛token方法上传 (推荐使用这种方法,前后台分离\color{green}{接口模式}\
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;

public function getToken()
{
    /**
     * Auth 类封装了所有的鉴权方式
     */
    $auth = new Auth(env('QINIU_AK'), env('QINIU_SK'));
    // 获取上传Token
    $data['token'] = $auth->uploadToken(env('QINIU_BUCKET'));

    // 上传类 UploadManager 中主要负责文件的上传
    // $upLoadMgr = new UploadManager();
    // 资源管理类 BucketManager 中主要负责空间中文件的管理: 复制,移动,删除,获取元信息
    // $bucketManager = new BucketManager();

    /**
     * 生成图片随机名称
     */
    $data['image_name'] = imageFileRandom();
    $data['image_prefix'] = config('qiniu.namespace');

    return $this->response->success($data);
}
  • Laravel form 表单后台上传图片代码Demo:(后台\color{green}{模板引擎}\渲染,不分离模式)
use Illuminate\Support\Facades\Storage;

public function uploadFile()
{
    /**
     * 检测是否有上传文件
     */
    if (request()->hasFile('file')) {
        // 获取文件
        $file = request()->file('file');
        // 获取七牛云配置
        $disk = Storage::disk('qiniu');
        // 获取图片名称
        $fileName = imageFileRandom();
        // 获取文件的绝对路径
        $filePath = $file->getRealPath();
        // 获取base64
        $fileGet = file_get_contents($filePath);

        // 上传七牛云
        $bool = $disk->put($fileName, $fileGet);

        // 检测是否上传成功
        if ($bool) {
            // 获取下载链接
            $data['image_url'] = $disk->downloadUrl($fileName);

            dd($data);
        }
    }

    dd('未获取到文件');
}
blade视图代码
<form method="post" action="{{URL('/applets/v1/uploadFile')}}" enctype="multipart/form-data">
    <input name="key" type="hidden" value="<resource_key>">
    <input name="x:<custom_name>" type="hidden" value="<custom_value>">
    <input name="token" type="hidden" value="<upload_token>">
    <input name="crc32" type="hidden" />
    <input name="accept" type="hidden" />
    <input name="file" type="file" />
    <input type="submit" value="上传文件" />
</form>

阿里云OSS - 也是云对象储存 (Object Storage Service)

阿里云-logo.jpg

腾讯云COS - 也是云对象储存 (Cloud Object Storage)

COS.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容

  • 七、物质宇宙的大小及年龄 1、从物质粒子的大小看微观宇宙有多小 ⑴物质由分子组成 在宇宙中的一切物质均由分子组成。...
    宇宙形成阅读 860评论 0 0
  • 其实根本就没在这个站下车。照片是我走的时候拍的。因为送我去车站的司机师傅开车太慢。刚刚到达火车站的时候,火...
    筱葵葵阅读 321评论 0 1
  • 055、回莲花洞半路上,孙悟空打死了老妖婆,原来她是个九尾狐狸。孙悟空收好幌金绳,然后自己变作老妖婆,来到莲花洞。...
    绿豆水阅读 102评论 0 0