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

简介: 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的配置,
相关文章
|
5月前
|
数据库
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(下)
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(下)
25 0
|
前端开发
前端学习案例-WangEdit富文本编辑器增加上传视频功能
前端学习案例-WangEdit富文本编辑器增加上传视频功能
346 0
|
5月前
|
存储 消息中间件 Java
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(上)
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务
40 0
|
前端开发 JavaScript
前端上传基础
只是上传流程,
139 0
|
存储 PHP 数据安全/隐私保护
Ueditor结合七牛云存储上传图片、附件和图片在线管理的实现和最新更新
最新下载地址: https://github.com/widuu/qiniu_ueditor_1.4.3 Ueditor七牛云存储版本 注意事项 老版本请查看 : https://github.com/widuu/qiniu_ueditor_1.
3018 0
|
9月前
微信录音上传至七牛云控制器代码
微信录音上传至七牛云控制器代码
59 0
|
5月前
|
前端开发 JavaScript
uniapp上传图片至服务器,获得在线图片链接预览(实战)
uniapp上传图片至服务器,获得在线图片链接预览(实战)
228 0
|
5月前
|
存储 消息中间件 Kafka
手把手教你云相册项目建议开发day3-上传下载业务逻辑之上传业务
手把手教你云相册项目建议开发day3-上传下载业务逻辑之上传业务
31 0
|
6月前
|
存储 小程序 JavaScript
小程序云开发上传及使用图片
小程序云开发上传及使用图片
93 0
|
9月前
|
前端开发 JavaScript
前端上传图片到七牛云
前端上传图片到七牛云
196 0

热门文章

最新文章