服务端用的是Thinkjs的,那么如何让小程序可以上传图片到七牛云?
看了网上一些写的,有些问题,所以自己也来写一个,希望能帮助到别人。
准备工作:
从七牛云获取access_key、secret_key,创建bucket取得名字,获取domian
- access_key、secret_key
2、新建bucket
3、获取domian
如果自己有域名,还可以配置DNS中的CNAME,用一个二级域名来代替这个七牛随机分配的域名,这样更好记些。比如,我是pic.mydomain.com。这部分,七牛有教程,需要的自己在七牛里看。
好了,得到这些后,我们正式开始了。
首先要在服务器端安装七牛SDK,用下面的命令,在命令行工具输入:
npm install qiniu
一、服务端的代码,作用就是取得token
const Base = require('./base.js');
const qiniu = require('qiniu');
module.exports = class extends Base {
async getQiniuTokenAction() {
let accessKey = '-2k5AtVgUQkuFYsdferzsdsdfsdfsgh';
// 你自己的accessKey
let secretKey = 'bJ5JBgRGPGIEtasdasdasdasfdgewrety';
// 你自己的secretKey
let bucket = 'yourbucket';
// 你创建的七牛存储空间名
let domain = 'http://icon.example.com/';
// 你自己的bucket的domain
let mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
let deadline = parseInt(new Date().getTime() / 1000) + 600;
let options = {
scope:bucket,
deadline:deadline,
};
let putPolicy = new qiniu.rs.PutPolicy(options);
let uploadToken=putPolicy.uploadToken(mac);
let data = {
token:uploadToken,
domain:domain
};
return this.success(data);
}
};
二、小程序端
首先,先去下载qiniuUploader.js,很重要,有篇博文就说明,要知道没有这个文件,是不可能上传成功的!
下载地址:http://7xvilo.com1.z0.glb.clouddn.com/qiniu-wxapp-sdk-master.zip
对了,下载解压后找到d