开发者社区> 烟海之蓝> 正文

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

简介: 1、注册登录七牛云,并实名认证,对象存储控制台,新增bucket存储空间 2、nodejs服务器安装npm install qiniu --save const 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的配置,

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
在线相册的前后端交互
在线相册的前后端交互
63 0
前端工作总结123-视频上传和图片编辑功能
前端工作总结123-视频上传和图片编辑功能
14 0
浅析前端上传
图片,音频,视频等等这几种常见的资源类型,如果需要从前端上传到服务端,有几种方式呢?不妨回顾一下经历过的项目想一想。
161 0
Java实现七牛云文件或图片上传下载
Java实现七牛云文件或图片上传下载
243 0
从破解某设计网站谈前端水印(详细教程)
最近在写公众号的时候,常常会自己做首图,并且慢慢地发现沉迷于制作首图,感觉扁平化的设计的真好好看。慢慢地萌生了一个做一个属于自己的首图生成器的想法。
326 0
前端上传基础
只是上传流程,
59 0
重新打包用户量过亿的开源截图软件——加入图片自动上传到图床的功能
有点标题党的感觉,但是我今天说的这个软件确实很多人都用,叫做Greenshot。咨询了它的作者,用户量竟然过亿。 先展示一下成果 为了更方便的使用七牛云的图床服务,去年实现了一个开源截图工具的插件,专门用来上传图片到七牛图床。
1450 0
Ueditor结合七牛云存储上传图片、附件和图片在线管理的实现和最新更新
最新下载地址: https://github.com/widuu/qiniu_ueditor_1.4.3 Ueditor七牛云存储版本 注意事项 老版本请查看 : https://github.com/widuu/qiniu_ueditor_1.
2795 0
+关注
烟海之蓝
程序设计之道,无远弗界,御晨风而返
文章
问答
文章排行榜
最热
最新
相关电子书
更多
无需从0开发 1天上手只能语音离在线方案
立即下载
函数计算最佳实践:快速开发一个分布式 Puppeteer 网页截图服务
立即下载
无需从0开发-1天上手智能语音离在线方案
立即下载