NodeJS使用七牛云存储上传文件的方法


Posted in NodeJs onJuly 24, 2017

1-准备工作

确认安装node和npm

安装 qiniu,formidable,express模块

npm install --save qiniu formidable

[x] 导入模块

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);
 })
})

总结

以上所述是小编给大家介绍的NodeJS使用七牛云存储上传文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

NodeJs 相关文章推荐
用nodejs实现PHP的print_r函数代码
Mar 14 NodeJs
nodejs实现黑名单中间件设计
Jun 17 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
nodejs制作爬虫实现批量下载图片
May 19 NodeJs
docker中编译nodejs并使用nginx启动
Jun 23 NodeJs
nodejs取得当前执行路径的方法
May 13 NodeJs
Nodejs异步回调之异常处理实例分析
Jun 22 NodeJs
nodejs高大上的部署方式(PM2)
Sep 11 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
Nodejs核心模块之net和http的使用详解
Apr 02 NodeJs
nodejs使用node-xlsx生成excel的方法示例
Aug 22 NodeJs
nodejs 搭建简易服务器的图文教程(推荐)
Jul 18 #NodeJs
nodejs密码加密中生成随机数的实例代码
Jul 17 #NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
Jul 14 #NodeJs
基于nodejs+express4.X实现文件下载的实例代码
Jul 13 #NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 #NodeJs
nodejs中sleep功能实现暂停几秒的方法
Jul 12 #NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 #NodeJs
You might like
配置PHP使之能同时支持GIF和JPEG
2006/10/09 PHP
php在线代理转向代码
2012/05/05 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
通过DOM脚本去设置样式信息
2010/09/19 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
关于vue面试题汇总
2018/03/20 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python内置数据类型详解
2014/08/18 Python
python中readline判断文件读取结束的方法
2014/11/08 Python
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
Python CSV模块使用实例
2015/04/09 Python
Python引用模块和查找模块路径
2016/03/17 Python
python的多重继承的理解
2017/08/06 Python
Python中的函数作用域
2018/05/07 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
简历中自我评价范文3则
2013/12/14 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
博物馆观后感
2015/06/05 职场文书
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript