七牛云存储kodo基本使用

前言

图片、视频等资源如果存在自己服务器 访问会很吃带宽,可以将其放在云服务器 自己服务器只管理数据 
七牛简单使用 记录如下

基本使用

前端接入七牛的sdk文件,使用七牛的api进行上传
前台向七牛上传资源需要凭证token,为了安全考虑 凭证token需要后台服务器去七牛获取
后台也需要引入对应的sdk文件 并获取token给客户端
客户端先请求自己服务器获取token 然后将图片资源和token一起 调用七牛上传图片的api上传图片
默认简单上传完成后 七牛服务器会返回客户端 key 和 hash值
如果需要上传完成后后台服务器做处理,需要配置 callbackUrl(是一个 外网可访问的、post接口地址)
js文档:https://developer.qiniu.com/kodo/1283/javascript

nodejs接入七牛

下载:npm instal qiniu --save
引入:const qiniu = require('qiniu');
使用:
    var accessKey = 'xxx';
    var secretKey = 'xxxxx';
    var mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
    var options = {
        scope: '七牛中上传的空间名',
        callbackUrl: '外网可访问的post接口地址 上传成功后七牛会请求此接口 ',
        callbackBody:                       '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}',
 //自定义的上传成功后返回的的格式
        callbackBodyType: 'application/json'//返回体数据类型
    }
    var putPolicy = new qiniu.rs.PutPolicy(options);
    app.get('/qiniuToken', function (req, res) {
        var uploadToken = putPolicy.uploadToken(mac);
        res.json({ token: uploadToken });
    });

js前台接入七牛

安装:npm install qiniu-js --save
引入:<script src="./node_modules/qiniu-js/dist/qiniu.min.js"></script>
使用:
    上传前压缩:
            const options = {
                //图片质量
                quality: 0.52,
                //如果压缩后size比原图大 是否就不压缩  
                //不压缩下面回调函数中data里的dist就会返回原文件
                noCompressIfLarger: true,
                // maxWidth: 800,
                // maxHeight: 618
            }
            qiniu.compressImage(imgFile, options).then(data => {
              // data 压缩后的文件或原文件
                console.log(data);
            });
    上传:     
            // qiniu.upload(文件,文件名,后端获取的凭证token,空间名,配置对象(全部可选);
            //返回observable对象
            const observable = qiniu.upload(data.dist, data.dist.name, token, '空间名', {});
            // subscription: 为一个带有 unsubscribe 方法的类实例,
            // 通过调用 subscription.unsubscribe() 停止当前文件上传。
            const subscription = observable.subscribe({
                    next(res) {
                        // ...
                        console.log('next==', res);
                    },
                    error(err) {
                        // ...
                        console.log('error==', err);
                    },
                    complete(res) {
                        // ...
                        console.log('complete==', res);
                    }
                })
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 10,751评论 0 11
  • 彩排完,天已黑
    刘凯书法阅读 4,425评论 1 3
  • 没事就多看看书,因为腹有诗书气自华,读书万卷始通神。没事就多出去旅游,别因为没钱而找借口,因为只要你省吃俭用,来...
    向阳之心阅读 4,942评论 3 11
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 128,858评论 2 7

友情链接更多精彩内容