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

发布时间 - 2026-01-11 02:29:44    点击率:

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 ftp上传文件夹到服务器案例详解  # element-ui配合node实现自定义上传文件方式  # Node.js连接mongo数据库上传文件的方法步骤  # node.js实现上传文件功能  # Node.js上传文件功能之服务端如何获取文件上传进度  # 在Node.js中使用HTTP上传文件的方法  # nodejs 实现模拟form表单上传文件  # 在 node 中使用 koa-multer 库上传文件的方式详解  # 小编  # 在此  # 给大家  # 准备工作  # 所述  # 回调  # 给我留言  # 感谢大家  # 上传文件  # 文件上传  # 疑问请  # 有任何  # IncomingForm  # token  # myblog  # putPolicy  # form  # bucket  # res  # key 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Python函数文档自动校验_规范解析【教程】  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  如何实现javascript表单验证_正则表达式有哪些实用技巧  C++时间戳转换成日期时间的步骤和示例代码  Laravel如何实现多对多模型关联?(Eloquent教程)  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  北京专业网站制作设计师招聘,北京白云观官方网站?  Firefox Developer Edition开发者版本入口  Laravel如何生成URL和重定向?(路由助手函数)  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  详解Huffman编码算法之Java实现  如何在局域网内绑定自建网站域名?  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  网站建设保证美观性,需要考虑的几点问题!  php json中文编码为null的解决办法  如何在Windows虚拟主机上快速搭建网站?  Windows Hello人脸识别突然无法使用  如何用AWS免费套餐快速搭建高效网站?  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何快速搭建高效可靠的建站解决方案?  Java遍历集合的三种方式  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  郑州企业网站制作公司,郑州招聘网站有哪些?  JavaScript如何实现错误处理_try...catch如何捕获异常?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何登录建站主机?访问步骤全解析  Bootstrap整体框架之CSS12栅格系统  七夕网站制作视频,七夕大促活动怎么报名?  如何快速查询网站的真实建站时间?  javascript基于原型链的继承及call和apply函数用法分析  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  详解jQuery中的事件  怎么用AI帮你为初创公司进行市场定位分析?  如何在阿里云ECS服务器部署织梦CMS网站?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  ,网页ppt怎么弄成自己的ppt?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】