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(二)--- Node.js事件模块
May 21 NodeJs
Nodejs学习笔记之NET模块
Jan 13 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
nodejs和C语言插入mysql数据库乱码问题的解决方法
Apr 14 NodeJs
NodeJS自定义模块写法(详解)
Jun 27 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 NodeJs
nodejs调取微信收货地址的方法
Dec 20 NodeJs
nodejs检测因特网是否断开的解决方案
Apr 17 NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 NodeJs
浅谈JS和Nodejs中的事件驱动
May 05 NodeJs
详解nodejs内置模块
May 06 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获取程序执行的时间
2013/06/09 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
python简单程序读取串口信息的方法
2015/03/13 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
python3中int(整型)的使用教程
2017/03/23 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
python使用正则筛选信用卡
2019/01/27 Python
Python API自动化框架总结
2019/11/12 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
Servlet面试题库
2015/07/18 面试题
应届电子商务毕业自荐书范文
2014/02/11 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
小学老师对学生的评语
2014/12/29 职场文书
个人典型事迹材料
2014/12/30 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
督导岗位职责范本
2015/04/10 职场文书
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs
cypress测试本地web应用
2022/06/01 Javascript