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实用示例 缩址还原
Dec 28 NodeJs
nodejs实现的一个简单聊天室功能分享
Dec 06 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
May 13 NodeJs
Windows下快速搭建NodeJS本地服务器的步骤
Aug 09 NodeJs
Nodejs 复制文件/文件夹的方法
Aug 24 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
nodejs操作mongodb的增删改查功能实例
Nov 09 NodeJs
详解NODEJS基于FFMPEG视频推流测试
Nov 17 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
NodeJS模块与ES6模块系统语法及注意点详解
Jan 04 NodeJs
如何利用nodejs实现命令行游戏
Nov 24 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与javascript的两种交互方式
2006/10/09 PHP
用PHP制作的意见反馈表源码
2007/03/11 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
PHP Class&Object -- 解析PHP实现二叉树
2013/06/25 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
Python StringIO模块实现在内存缓冲区中读写数据
2015/04/08 Python
python中常用的九种预处理方法分享
2016/09/11 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
pthon贪吃蛇游戏详细代码
2019/01/27 Python
Python匿名函数及应用示例
2019/04/09 Python
Python的形参和实参使用方式
2019/12/24 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
Boden美国官网:英伦原创时装品牌
2017/07/03 全球购物
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
Android笔试题总结
2014/11/29 面试题
大学运动会通讯稿
2014/01/28 职场文书
《生命的药方》教学反思
2014/04/08 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
财务务虚会发言材料
2014/10/20 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers