目前采用的上传策略是:
前端先请求自己的node服务器拿到token,
然后调用七牛的接口https://upload-z2.qiniup.com上传图片。
整个流程刚开始是能跑通的,但是过段时间就会有token失效的情况,重启服务后才能继续使用。难道说是要自己写个方法去定时刷新token吗?
后台生成token的方法是用七牛的nodejs SDK生成的
const config = require('../config')
const qiniu = require('qiniu')
const accessKey = config.qiniu.AK;
const secretKey = config.qiniu.SK;
const mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
//自定义凭证有效期(示例2小时,expires单位为秒,为上传凭证的有效时间)
const options = {
scope: config.qiniu.bucket
};
const putPolicy = new qiniu.rs.PutPolicy(options);
const uploadToken = putPolicy.uploadToken(mac);
module.exports = uploadToken
找到问题了,在写接口的时候把引入token的代码放到了外面,导致获取token的代码只执行了一次,移到接口里面就好了。被自己蠢哭了,谢谢大家的回答~
再次更新:上面这样写也是有问题的,原因在于require有缓存的机制。。正确的做法是封装一个getUploadToken的方法,然后在接口里面调用