美文网首页让前端飞
干货~在项目中使用七牛云作图床

干货~在项目中使用七牛云作图床

作者: 黑涩月光 | 来源:发表于2019-01-08 16:10 被阅读4次

博主最近在开发自己的个人博客,因为之前使用wordpress享受过七牛云飞快的图片加载速度,还是很想回归七牛的拥抱滴。下面介绍下如果通过七牛云的sdk上传你的图片至对象存贮空间

博主使用的是react开发,配合express作为后台,mongodb作为数据库

1、获取一些必要的条件

前端发送数据时需要的token需要从后端取得,首先安装七牛云后端插件

npm install qiniu

获取上传凭证token前,先定义好鉴权对象mac

var accessKey = 'your access key'; 
var secretKey = 'your secret key';
var mac = new qiniu.auth.digest.Mac(accessKey, secretKey);

AK以及SK的秘钥在此处获取

TIM图片20190108153449.png TIM截图20190108153510.png

这个时候就可以创建最简单的获取token的实例了,完整代码如下:

const qiniu = require('qiniu')
Router.get('/getToken',function(req,res){
    var accessKey = 'your access key'; 
    var secretKey = 'your secret key';
    var mac = new qiniu.auth.digest.Mac(accessKey, secretKey)
    var options = {
        scope: 'blog', //就是你的对象存储空间名
      };
    var putPolicy = new qiniu.rs.PutPolicy(options);
    var uploadToken=putPolicy.uploadToken(mac); //需要的token
    if(uploadToken){
        return res.json({code:0,msg:'获取token成功',token:uploadToken})
    }else{
        return res.json({code:1,msg:'获取token失败'})
    }
})

2、开始从前端上传图片

博主使用的是antd的upload插件,小伙伴们也可以使用其他方式,首先安装七牛云javascriptSDK插件

npm install qiniu-js
        let config = {
            useCdnDomain: true, //是否使用cdn加速域名
            region: qiniu.region.z0 //上传区域
        }
        let putExtra = {
            fname: "", //原文件名
            params: {}, //自定义变量
            mimeType: null //用来限制上传类型,null时不限制,可以设置为["image/png","image/jpeg"]
        };
        let observer = {
            complete(res){
                alert('上传成功');
            }
        }
        var observable = qiniu.upload(file, name,token, putExtra, config)  //file上传的文件,name设置的文件名,token从后台获取
        var subscription = observable.subscribe(observer)  //开始上传

需要注意的是上传的文件类型是一个Blob对象。区域一定要设置正确

qiniu.region.z0: 代表华东区域
qiniu.region.z1: 代表华北区域
qiniu.region.z2: 代表华南区域
qiniu.region.na0: 代表北美区域
qiniu.region.as0: 代表东南亚区域
注意,文件类型是一个二进制文件 上传成功

如果使用自己的图片,用七牛云自己的融合 CDN 测试域名加上图片名字即可

TIM截图20190108160516.png

至此,一个简易的上传实例搭建完成。

相关文章

  • 干货~在项目中使用七牛云作图床

    博主最近在开发自己的个人博客,因为之前使用wordpress享受过七牛云飞快的图片加载速度,还是很想回归七牛的拥抱...

  • 使用七牛云和picgo打造markdown图床

    使用七牛云和picgo打造markdown图床 [TOC] 七牛云设置 七牛云注册,实名认证后就会有10G的免费空...

  • 快速使用七牛云对象存储

    最近,想使用图床,使用了七牛云的对象存储,另外一个很大的原因, 七牛云有免费的空间。 类似的产品有很多,阿里云、腾...

  • iOS 使用阿里云上传图片

    前言: 项目要把图床从七牛迁到阿里云。因此,就要使用阿里云的图床上传。我去看了阿里云开发文档给出的示例代码和git...

  • 如何写一篇hexo博客

    新建博客文件 (相关推荐) 博客中添加图片我们可以使用图床获取图片的URL 七牛云 外链图床 开始学习 Hexo使...

  • 七牛云图片下载

    之前博客一直使用七牛云作为图床,其提供了免费的测试域名来提供使用,现在七牛云开始停止免费域名的提供,必须绑定新的域...

  • Hexo+NexT博客搭建相册功能(一)

    实现原理 1、使用github作为图床(也可以使用七牛和阿里的存储作为图床)2、使用脚本在source目录中dat...

  • 使用七牛云做图床

    背景 对于程序员来说,最好的写作方式莫过于使用markdown的语法进行编辑,好处就不多讲,但是缺点也很明显,我相...

  • 2019051202 七牛云绑定阿里云域名

    前言 使用七牛云作为图床存储图片时候,七牛云会分配一个有效期为30天的域名,对于长期使用的用户来说很不方便,可以通...

  • 七牛云对象存储+Mpic图床,实现图片托管

    七牛云对象存储+Mpic图床,实现图片托管。 账号申请:七牛云 打开官网 七牛云,注册账号,完成实名认证 为什么选...

网友评论

    本文标题:干货~在项目中使用七牛云作图床

    本文链接:https://www.haomeiwen.com/subject/pwvkrqtx.html