nodejs 使用七牛云存储上传文件

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

[toc]

本文在最新qiniu sdk 开发只适用于0.4.6node 开发。
详细关注: https://github.com/tstrilogy/...

在网上寻找了很多七牛云存储的博文,也百度了许多。但是都不尽如人意,因此自个撸一个小示例。

1-准备工作

npm install --save qiniu formidable
let qiniu = require('qiniu'),
    formidable = require('formidable'),
    express = require('express'),
    router = express.Router();


2-服务器端的云存储操作

2-1文件上传

router.post('/qiniu', function (req, res, next) {

  let bucket = 'myblog',
    key = '',
    form = formidable.IncomingForm(),
    token, putPolicy;


  form.uploadDir = path.join(__dirname, '../../', 'public/img/upload');
  form.keepExtensions = true

  form.parse(req, function (err, fields, files) {
    if (err) {
      console.log(err);
    }
    key = files.mypic.path.split(path.sep).pop();
    putPolicy = new qiniu.rs.PutPolicy(bucket + ':' + key)
    //设置回调
    // putPolicy.callbackUrl = 'http://localhost:81/test/callback'
    // putPolicy.callbackBody = 'filename=$(fname)&filesize=$(fsize)'

    token = putPolicy.token()

    console.log('token', token)
    let extra = new qiniu.io.PutExtra()
    qiniu.io.putFile(token, key, files.mypic.path, extra, function (err, ret) {
      if (err) {
        console.log(err)
      }
      console.log('ret', ret);
      res.json({
        token: token,
        ret: ret,
        files: files,
        fields: fields
      })
    })
  })

})

文件下载

router.get('/download/:key', function (req, res, next) {
  let url = 'http://xxxx.bkt.clouddn.com/' + req.params.key,
    policy = new qiniu.rs.GetPolicy();

  console.log(url);

  res.json({url: policy.makeRequest(url)})
})

文件获取

router.get('/info/:key', function (req, res, next) {
  let bucket = 'myblog',
    key = req.params.key,
    client = new qiniu.rs.Client();

  client.stat(bucket, key, (err, ret) => {
    if (err) {
      console.log(err);
    }
    res.json(ret);
  })
})
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看