七牛云上传图片
第一次用七牛云,目的是存储一些图片
1.首先是七牛云的注册,很简单。
2.注册完创建新的空间
3.这时候会自动分配给你一个域名,但是有效期是30天。
4.若要长久使用,最好用自己的域名,域名要先备案
5.添加加速域名,我用的是二级域名,然后到云服务器控制台进行域名解析,我的是腾讯云
比如我的域名是img.xxx.xxx,那么主机记录就是img,记录类型就是上面那个,记录值是下面这个东西
然后就可以上传图片啦
微信小程序上传图片到七牛云
官方文档写得挺清楚,但是我没看太明白https://developer.qiniu.com/kodo/sdk/1289/nodejs
###拿到token
1.我用的是node+express写得简单接口,在里面拿到token的
a)配置文件
小接口
2.小程序段
a)用一个SDK https://github.com/gpake/qiniu-wxapp-sdk,存储所在区域啥的里面都有说,然后秘钥在 七牛云-个人中心-秘钥管理
b)小程序段拿到token,然后用这个SDK上传图片
const qiniuUploader = require('../../qiniuUploader.js')
Page({
data: {
imageURL:'',
uptoken:''
},
test() {
wx.request({ //拿到token
url: 'http://localhost:4040/upload',
header: {
'Content-Type': 'application/json;charset=UTF-8'
},
method: 'POST',
success: (response) => {
this.setData({
uptoken: response.data.date
})
console.log(this.data.uptoken)
}
})
wx.chooseImage({ //微信小程序的API,获取临时图片地址
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success:(res) => {
// tempFilePath可以作为img标签的src属性显示图片
const img = res.tempFilePaths[0]
// 交给七牛上传
qiniuUploader.upload(img, (res) => {
this.setData({
'imageURL': res.imageURL,
});
}, (error) => {
console.log('error: ' + error);
}, {
region: 'SCN', //华南
domain: '你的域名', //
key: 'customFileName.jpg', // 上传到七牛云图片就是这名字了
// 以下方法三选一即可,优先级为:uptoken > uptokenURL > uptokenFunc
uptoken: this.data.uptoken, // 由其他程序生成七牛 uptoken
uptokenURL: '存储空间所在区域', // 从指定 url 通过 HTTP GET 获取 uptoken,返回的格式必须是 json 且包含 uptoken 字段,例如: {"uptoken": "[yourTokenString]"}
// uptokenFunc: function() {
// return '[yourTokenString]';
// }
}, (res) => {
console.log('上传进度', res.progress)
console.log('已经上传的数据长度', res.totalBytesSent)
console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)
}, () => {
// 取消上传
}, () => {
// `before` 上传前执行的操作
}, (err) => {
// `complete` 上传接受后执行的操作(无论成功还是失败都执行)
});
}
})
}
)}
然后就上传成功了,中间反了个错误,把秘钥复制叉劈了,搞了好久。