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 npm package.json中文文档
Sep 04 NodeJs
nodejs中实现sleep功能实例
Mar 24 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 NodeJs
nodejs连接mongodb数据库实现增删改查
Dec 01 NodeJs
详解nodejs 文本操作模块-fs模块(二)
Dec 22 NodeJs
配置nodejs环境的方法
May 13 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 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可生成缩略图的文件上传类实例
2014/12/17 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
这段js代码得节约你多少时间
2011/12/20 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Python 忽略warning的输出方法
2018/10/18 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
python中几种自动微分库解析
2019/08/29 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
电气个人求职信范文
2014/02/04 职场文书
主管会计岗位责任制
2014/02/10 职场文书
暑期学习心得体会
2014/09/02 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python