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调用cmd命令实现复制目录
May 04 NodeJs
nodejs简单实现中英文翻译
May 04 NodeJs
NodeJs下的测试框架Mocha的简单介绍
Feb 22 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
nodejs项目windows下开机自启动的方法
Nov 22 NodeJs
webstorm中配置nodejs环境及npm的实例
May 15 NodeJs
nodejs微信开发之授权登录+获取用户信息
Mar 17 NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 NodeJs
nodejs一个简单的文件服务器的创建方法
Sep 13 NodeJs
nodejs实现UDP组播示例方法
Nov 04 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加MYSQL服务器
2006/10/09 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
PHP生成条形图的方法
2014/12/10 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
jQuery TextBox自动完成条
2009/07/22 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
使用eslint和githooks统一前端风格的技巧
2020/07/29 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
python算法表示概念扫盲教程
2017/04/13 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
Django中的Model操作表的实现
2018/07/24 Python
python微信好友数据分析详解
2018/11/19 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
酒店副总经理岗位职责范本
2014/02/04 职场文书
建议书的格式
2014/05/12 职场文书
个人考核材料
2014/05/15 职场文书
商场租赁意向书
2014/07/30 职场文书
部队个人年终总结
2015/03/02 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
2019入党申请书格式
2019/06/25 职场文书
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
Python+DeOldify实现老照片上色功能
2022/06/21 Python
SpringBoot Http远程调用的方法
2022/08/14 Java/Android