资讯专栏INFORMATION COLUMN

nodejs 使用七牛云存储上传文件

liujs / 2452人阅读

摘要:本文在最新开发只适用于开发。详细关注在网上寻找了很多七牛云存储的博文,也百度了许多。但是都不尽如人意,因此自个撸一个小示例。准备工作确认安装和安装模块导入模块服务器端的云存储操作文件上传设置回调文件下载文件获取

[toc]

本文在最新qiniu sdk 开发只适用于0.4.6node 开发。
详细关注: https://github.com/tstrilogy/...

在网上寻找了很多七牛云存储的博文,也百度了许多。但是都不尽如人意,因此自个撸一个小示例。

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);
  })
})

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84970.html

相关文章

  • 浅析前端上传

    摘要:项目上也用到很多上传文件的地方,七牛云,阿里云,讯飞上传都接触过,所以在这里做一个记录,总结一下前端上传的几种方式。类型的文件名七牛云上传浅析是一个基于七牛开发的前端。 showImg(https://segmentfault.com/img/bVbvibu?w=1920&h=1080); 图片,音频,视频等等这几种常见的资源类型,如果需要从前端上传到服务端,有几种方式呢?不妨回顾一下...

    terro 评论0 收藏0
  • 牛云存储官方接口PHP版本

    摘要:基于七牛云存储官方构建。使用此构建您的网络应用程序,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。应用接入获取和要接入七牛云存储,您需要拥有一对有效的和用来进行签名认证。文件下载七牛云存储上的资源下载分为公有资源下载和私有资源下载。 此 SDK 适用于 PHP 5.1.0 及其以上版本。基于 七牛云存储官方API 构建。使用此 SDK 构建您的网络应用程序,能让您以非常便捷地方...

    wwq0327 评论0 收藏0
  • 使用牛云存储的一些经验总结

    摘要:原文使用七牛云存储的一些经验总结错误处理如果在与七牛的交互中出现状态码为的错误,一句话,不要犹豫,直接联系七牛技术支持。但是笔者发现,在使用七牛云转化后的视频,这样做是无效的。 近段时间将使用七牛云存储来存放用户上传的数据,客户端通过七牛的js-sdk与七牛交互,服务端C#实现了七牛相关的接口。在这过程中多多少少遇到点问题,在这里总结一下。原文:使用七牛云存储的一些经验总结 599错...

    Lyux 评论0 收藏0
  • Ueditor结合牛云存储上传图片、附件和图片在线管理的实现和最新更新

    摘要:版本修复提供多文件上传,解决了以前不能多文件上传问题,最大上传图片张,最大上传附件,如果感觉时间不足可修改中的时间,现在是修复了文件同名上传失败的问题,解决方案是同名上传覆盖,即的方式修复了丢失的问题修改了上一版执行安全漏洞还有个小就是上传 1.0版本修复bug 提供多文件上传,解决了以前不能多文件上传问题,最大上传图片32张,最大上传附件10,如果感觉时间不足可修改getToke...

    xavier 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<