这是我的service 文件,

const Service = require('egg').Service
const qiniu = require('qiniu')
const path = require('path')const sendToWormhole = require('stream-wormhole')
//需要填写你的 Access Key 和 Secret Key
qiniu.conf.ACCESS_KEY = ''
qiniu.conf.SECRET_KEY = ''//要上传的空间
const bucket = ''
let mac = new qiniu.auth.digest.Mac(qiniu.conf.ACCESS_KEY, qiniu.conf.SECRET_KEY)
const options = {scope: bucket,expires: 60 * 60
}class Qiniu extends Service {/*** @desc 七牛云文件上传* */async uploadFile (stream) {const { ctx, app } = thisconst filename = Date.now() + '' + Number.parseInt(Math.random() * 10000) + path.extname(stream.filename)let uploadToken = await app.redisGet('uploadToken:token')//从redis获取七牛上传tokenif (!uploadToken) {//如果不存在,就重新生成一个let putPolicy = new qiniu.rs.PutPolicy(options)uploadToken = putPolicy.uploadToken(mac)await app.redisSet('uploadToken:token', uploadToken, options.expires)}let config = new qiniu.conf.Config()config.zone = qiniu.zone.Zone_z2const formUploader = new qiniu.form_up.FormUploader(config)const putExtra = new qiniu.form_up.PutExtra()try {const data = await new Promise((resolve, reject) => {/** formUploader 有好几种上传方法,* putStream 数据流上传* put 表单上传* putFile 指定本地文件上传* */formUploader.putStream(uploadToken, filename, stream, putExtra, function (respErr,respBody, respInfo) {if (respErr) {return reject(respErr)}if (respInfo.statusCode === 200) {resolve(respBody.key)} else {return reject(respBody)}})})return {filePath: app.config.qiniuUrl + data,savePath: data}} catch (e) {// 必须将上传的文件流消费掉,要不然浏览器响应会卡死await sendToWormhole(stream)return JSON.stringify(e)}}
}module.exports = Qiniu

egg,七牛云上传图片相关推荐

  1. 使用七牛云上传图片时出现Network error during preQuery和运行时出现okhttp的问题

    问题描述 1.使用七牛云上传图片时出现Network error during preQuery,但网络正常 原因分析:排除网络原因,尝试网络配置方向调整 Configuration configur ...

  2. 七牛云上传图片和视频

    先说本文主要的重点: 七牛云上传图片(包括从相机获取的和从相册获取的)    七牛云上传视频       8.0手机调起相机        都会进行描述    多图片和多视频上传    获取图片后缀 ...

  3. 七牛云 上传图片到七牛云并返回图片URL

    七牛云 上传图片到七牛云并返回图片URL 鸣谢'追逐盛夏流年':https://blog.csdn.net/j1231230/article/details/80061834 在开发项目的时候,经常会 ...

  4. Java实现七牛云上传图片、读取图片链接

    Java后端实现七牛云上传图片.读取图片链接 添加依赖 <!--七牛云sdk--><dependency><groupId>com.qiniu</groupI ...

  5. 七牛云上传图片报错处理

    {ResponseInfo:com.qiniu.http.Response@62bd765,status:400, reqId:d4kAAACMt2hWMSEW, xlog:X-Log, xvia:, ...

  6. python对接七牛云上传图片代码,可运行

    python对接七牛云上传图片,可运行 一.准备工作 注册七牛云获取: 1.Access Key(注册认证后自动生成) 2.Secret Key(注册认证后自动生成) 3.空间名称:ihome(创建空 ...

  7. 小程序调用阿里云身份证识别OCR(附带七牛云上传图片)

    写在前面: 实现的逻辑是拍照上传调用后端封装好的身份证接口,然后同时调用七牛云接口把照片传过去以便后台管理系统审核看 1:首选需要这么一张页面 接下来就写我是怎么做的 首先是布局(以下是wxml) & ...

  8. 根据后台返回地址实现图片展示_微信小程序 - 前端接入七牛云上传图片和视频...

    相信小程序开发者在开发过程中都会遇到上传代码包遇到大小限制这个问题,因为微信现在规定代码不能超过 2 MB 大小,但我们实际开发过程中难免会有业务需求要使用一些图片和视频等媒体文件,这样的话会导致上传 ...

  9. 七牛云上传图片并返回图片URL

    1.七牛云注册登录 https://portal.qiniu.com/signup/choice 完成实名认证,传身份证正反面之等,大概一个小时左右就认证成功了 2.新建存储空间 地区可以自己选择 3 ...

最新文章

  1. App-V 4.6 SP1系列之五包加速器的制作
  2. Swift之从SIL深入分析函数的派发机制
  3. 深入学习http协议(转)
  4. 软考计算机英语考题,《全国计算机软考网管英语试题及答案.doc
  5. MySQL 基础 ———— 变量
  6. 【华为大咖分享】2.DevCloud on DevCloud 从1月1次到1天10次发布的实践分享(后附PPT下载地址)
  7. 项目开发中如何提升团队的战力?
  8. python数据分类聚类案例_Python 数据分类与聚类分析(5)
  9. python实现将android手机通讯录vcf文件转化为csv
  10. 如何前后端分离的架构中使用Shiro框架
  11. 用C语言写的爬虫项目
  12. 解决 微信小程序 input错位
  13. 页游终端服务器,页游定制高防服务器秒解封服务器
  14. python语言开发什么_python语言是什么语言开发的_Python语言的由来,编程语言简史...
  15. 计算机管理-磁盘管理中进行扩展卷操作,Win8系统如何进行磁盘管理?
  16. 中国C2C电子商务模式存在的问题及对策
  17. 自动化运维 -- 02 Ansible
  18. android studio按坐标布局,Android studio一个手势锁的界面布局
  19. Plu2006即将开赛,参赛选手名单公布
  20. Vaa3D (V3D) installation procedures in Windows(VS2010) V3D安装教程

热门文章

  1. deepin v20桌面bug_Deepin V20深度终端desktop快捷方式不能用Terminal=true是个BUG
  2. QTableWidget滚动条设置
  3. 设计原则与思想【面向对象、设计原则、编程规范、重构技巧】
  4. linux 磁盘io监控
  5. unity抠人像原理_c# 利用百度图像处理【人像分割】一键抠图
  6. 小程序怎么做查看更多的显示和隐藏
  7. NBP Lumizone(PS亮度蒙版调色插件)v1.1.001版本更新
  8. jsonobject返回map_jsonobject转map对象
  9. Matlab 绘制矩阵色块图
  10. 安搭Share简论时光