美文网首页
nodejs集成七牛云

nodejs集成七牛云

作者: 俗人彭jin | 来源:发表于2018-11-12 15:24 被阅读0次
1.需要下载7牛啥的
const qiniu = require('qiniu')
const configs = require('../config/config')
var path = require('path')
var fs = require("fs")//操作文件

// 七牛
const qiniu = require('qiniu')
var _accessKey = configs.qiniu.AK;
var _secretKey = configs.qiniu.SK;
var mac = new qiniu.auth.digest.Mac(_accessKey, _secretKey);
var options = {
    scope: configs.qiniu.Zone
};
var putPolicy = new qiniu.rs.PutPolicy(options);
var uploadToken = putPolicy.uploadToken(mac)

// 第二步:构建配置config 上传对应的空间地区
var config = new qiniu.conf.Config();
config.zone = qiniu.zone.Zone_z2; //华南
var formUploader = new qiniu.form_up.FormUploader(config);
var putExtra = new qiniu.form_up.PutExtra();

// 拿到express路由
const Router = express.Router()
Router.post('/qiniuUpload', upload.array('file', 2), function (req, res, next) {
    var file = req.files
    var arrPath = []
    for (let i = 0; i < file.length; i++) {
        var pathName = "upload/" + file[i].filename + '.' + file[i].originalname.split('.')[1]
        console.log()
        fs.rename(req.files[i].path, pathName, function (err) {
            if (err) {
                throw err;
            }
        })
        var key = file[i].filename + '.' + file[i].originalname.split('.')[1]
        // 文件上传 // path.resolve给相对路径变成绝对路径
        formUploader.putFile(uploadToken, key, path.resolve(pathName), putExtra, function (respErr, respBody, respInfo) {
            if (respErr) {
                throw respErr;
            }
            if (respInfo.statusCode == 200) {
                console.log(respBody);
            } else {
                console.log(respInfo.statusCode);
                console.log(respBody);
            }
        })
        // 存到数组
        arrPath.push({path: configs.qiniu.URL + key})
        // 删除上次图片
        fs.unlinkSync(pathName);
    }
    res.json({code: 0, data: arrPath, msg: '图片上传成功'})
})

相关文章

网友评论

      本文标题:nodejs集成七牛云

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