七牛云存储开发图片上传功能

简介: 1、注册登录七牛云,并实名认证,对象存储控制台,新增bucket存储空间2、nodejs服务器安装npm install qiniu --saveconst common = require('.

1、注册登录七牛云,并实名认证,对象存储控制台,新增bucket存储空间

2、nodejs服务器安装npm install qiniu --save

const common = require('../../lib/common.js')
const qiniu = require('qiniu')
let niu = {}

niu.errorHandler = common.errorHandler

niu.createToken = function(req, res, next) {
    let result = req.body.result
    var accessKey = common.config.qiniuAccessKey
    var secretKey = common.config.qiniuSecretKey
    var mac = new qiniu.auth.digest.Mac(accessKey, secretKey)

    var options = {
        scope: 'images', // 创建好的bucket
        expires: 3600 // 过期时间 单位s
    }

    var putPolicy = new qiniu.rs.PutPolicy(options)
    var uploadToken=putPolicy.uploadToken(mac)
    result.qiniu = uploadToken
    return common.send(req, res, {status: 0, msg: '登录成功!', data: result})
}
module.exports = niu

通过以上方法生产客户端上传图片需要用的token

3、客户端安装npm install qiniu-js --save

                     confirm() {
                    let formData = new FormData(this.$refs.form.$el)
                    let file = formData.get('file')
                    let key = file.name
                    let putExtra = {
                        mimeType: ['image/png', 'image/jpeg'] || null // 前端校验图片格式
                    }
                    console.log(file)
                    var observable = qiniu.upload(file, key, this.token, putExtra)
                    var observer = {
                        next(res) {
                            console.log(res)
                        },
                        error(err) {
                            console.log(err)
                        }, 
                        complete(res) {
                            console.log(res)
                        }
                    }
                    var subscription = observable.subscribe(observer) // 上传开始
                    console.log(subscription)
                    // // or
                    // var subscription = observable.subscribe(next, error, complete) // 这样传参形式也可以
                    // subscription.unsubscribe() // 上传取消
                }
    
observer的参数注释
    next: 接收上传进度信息,res 参数是一个带有 total 字段的 object,包含loaded、total、percent三个属性,提供上传进度信息。

total.loaded: number,已上传大小,单位为字节。
total.total: number,本次上传的总量控制信息,单位为字节,注意这里的 total 跟文件大小并不一致。
total.percent: number,当前上传进度,范围:0~100。
error: 上传错误后触发,当不是 xhr 请求错误时,会把当前错误产生原因直接抛出,诸如 JSON 解析异常等;当产生 xhr 请求错误时,参数 err 为一个包含 code、message、isRequestError 三个属性的 object:

err.isRequestError: 用于区分是否 xhr 请求错误;当 xhr 请求出现错误并且后端通过 HTTP 状态码返回了错误信息时,该参数为 true;否则为 undefined 。
err.reqId: string,xhr请求错误的 X-Reqid。
err.code: number,请求错误状态码,只有在 err.isRequestError 为 true 的时候才有效,可查阅码值对应说明。
err.message: string,错误信息,包含错误码,当后端返回提示信息时也会有相应的错误信息。
complete: 接收上传完成后的后端返回信息,res 参数为一个 object, 为上传成功后后端返回的信息,具体返回结构取决于后端sdk的配置,
相关文章
|
数据库
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(下)
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(下)
66 0
|
存储 PHP 数据安全/隐私保护
Ueditor结合七牛云存储上传图片、附件和图片在线管理的实现和最新更新
最新下载地址: https://github.com/widuu/qiniu_ueditor_1.4.3 Ueditor七牛云存储版本 注意事项 老版本请查看 : https://github.com/widuu/qiniu_ueditor_1.
3119 0
|
存储 消息中间件 Java
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(上)
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务
109 0
|
15天前
|
API 数据安全/隐私保护
抖音视频,图集无水印直链解析免费API接口教程
该接口用于解析抖音视频和图集的无水印直链地址。请求地址为 `https://cn.apihz.cn/api/fun/douyin.php`,支持POST或GET请求。请求参数包括用户ID、用户KEY和视频或图集地址。返回参数包括状态码、信息提示、作者昵称、标题、视频地址、封面、图集和类型。示例请求和返回数据详见文档。
|
3月前
|
存储 前端开发 Java
学成在线笔记+踩坑(5)——【媒资模块】上传视频,断点续传
上传视频,MinIO断点续传、检查文件/分块、上传分块、合并分块
学成在线笔记+踩坑(5)——【媒资模块】上传视频,断点续传
|
7月前
【ripro美化】全站美化包WordPress RiPro主题二开美化版sucaihu-childV1.9(功能集成到后台)
1、【宝塔】删除ripro文件,上传最新ripro版本,然后上传压缩包内的ripro里面的对应文件到ripro主题对应内覆盖(找到对应路径单个文件去覆盖)。 2、然后上传ripro-chlid子主题美化包到/wp-content/themes路径下 3、注意顺序 原版–>美化包–>后台启用子主题(已启用请忽略)。
176 0
【ripro美化】全站美化包WordPress RiPro主题二开美化版sucaihu-childV1.9(功能集成到后台)
|
前端开发 JavaScript
uniapp上传图片至服务器,获得在线图片链接预览(实战)
uniapp上传图片至服务器,获得在线图片链接预览(实战)
444 0
|
存储 消息中间件 Kafka
手把手教你云相册项目建议开发day3-上传下载业务逻辑之上传业务
手把手教你云相册项目建议开发day3-上传下载业务逻辑之上传业务
83 0
|
存储 小程序 JavaScript
小程序云开发上传及使用图片
小程序云开发上传及使用图片
143 0
|
前端开发 Java
在线相册的前后端交互
在线相册的前后端交互
187 0
在线相册的前后端交互