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


相关推荐: Android利用动画实现背景逐渐变暗  EditPlus中的正则表达式 实战(2)  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  昵图网官网入口 昵图网素材平台官方入口  Laravel中的withCount方法怎么高效统计关联模型数量  如何在建站宝盒中设置产品搜索功能?  Android GridView 滑动条设置一直显示状态(推荐)  Laravel如何实现用户注册和登录?(Auth脚手架指南)  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Laravel怎么实现验证码(Captcha)功能  如何破解联通资金短缺导致的基站建设难题?  iOS发送验证码倒计时应用  js实现获取鼠标当前的位置  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  如何在Windows虚拟主机上快速搭建网站?  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel中的Facade(门面)到底是什么原理  javascript如何操作浏览器历史记录_怎样实现无刷新导航  jQuery中的100个技巧汇总  php json中文编码为null的解决办法  Laravel怎么为数据库表字段添加索引以优化查询  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  北京的网站制作公司有哪些,哪个视频网站最好?  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  如何在万网利用已有域名快速建站?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Laravel如何处理文件下载请求?(Response示例)  实例解析angularjs的filter过滤器  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  怎么用AI帮你设计一套个性化的手机App图标?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何在万网自助建站中设置域名及备案?  JS碰撞运动实现方法详解  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Java垃圾回收器的方法和原理总结  微信小程序 scroll-view组件实现列表页实例代码  Android使用GridView实现日历的简单功能  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  如何快速选择适合个人网站的云服务器配置?  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  如何快速辨别茅台真假?关键步骤解析  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】