nodejs简单上传图片到七牛

3,272 阅读1分钟
const qiniu = require('qiniu')

let bucket = 'xxx' //  七牛云存储空间名
let putPolicy = new qiniu.rs.PutPolicy({ scope: bucket }) //  指定七牛云存储空间
let accessKey = 'xxx' //  AK
let secretKey = 'xxx' //  SK
let mac = new qiniu.auth.digest.Mac(accessKey, secretKey) //  鉴权对象
let uploadToken = putPolicy.uploadToken(mac) //  获取上传凭证

let qn = {}

/**
 * 客户端上传
 */
qn.uptoken = (bucket) => {
  putPolicy = new qiniu.rs.PutPolicy({ scope: bucket })
  let tk = {
    'token': uploadToken,
    'url': 'http://domain.com/'
  }
  return tk
}

/**
 * 服务端上传
 */
qn.upImg = () => {
  let config = new qiniu.conf.Config()
  config.zone = qiniu.zone.Zone_z2 //  空间对应机房
  let localFile = '/Users/zzz/Desktop/mac/unit/moon/local/imgs/111.jpeg' //  本地文件
  let formUploader = new qiniu.form_up.FormUploader(config) //  生成表单上传的类
  let putExtra = new qiniu.form_up.PutExtra() //  生成表单提交额外参数
  let key = Math.random() + 'test.jpeg' //  重命名文件
  
  /**
   * 上传本地文件
   * @param uploadToken 上传凭证
   * @param key 目标文件名
   * @param localFile 本地文件路径
   * @param putExtra 额外选项
   * @param callback
   */
  formUploader.putFile(uploadToken, key, localFile, putExtra, function (respErr, respBody, respInfo) {
    if (respErr) {
      console.log(respErr)
      throw respErr
    }
    if (respInfo.statusCode == 200) {
      console.log(respBody)
    } else {
      console.log(respInfo.statusCode)
      console.log(respBody)
    }
  })
}
module.exports = qn