博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web端接入AliOss存储
阅读量:5240 次
发布时间:2019-06-14

本文共 2295 字,大约阅读时间需要 7 分钟。

1、快速开始,安装

npm安装:        npm install ali-oss直接引入:        本地引入:        

2、Bucket设置:(这步需要登录到oss管理系统配置)设置http请求方式。

3、获取token

      因为我们项目是即时通讯 所以 通过socket cmd方式获取,具体与后台沟通

4、上传文件

    • 上传blob数据
    • 断点上传
/** * web端阿里云上传 * @param  {Object} files 上传资源 * @param  {Object} result token * @return {Object} */retryAliUpSend: (files, result) => {    let client = new OSS({        accessKeyId: result.AccessKeyId,        accessKeySecret: result.AccessKeySecret,        stsToken: result.SecurityToken,        endpoint: result.endpoint,        bucket: result.bucket,        secure: true    });    // 上传命名=>自定义命名规则    const aliObjName = 'test001';    // storeAs表示上传的object name , file表示上传的文件    client.multipartUpload(aliObjName, files).then(function (result) {        // 上传成功结果    }).catch(function (err) {        上传失败    });},

5、复制文件

      复制部分,web端无api文档,需通过查看源码找到复制方法

      > aliObjName >> 新上传的key & filename

      > sourceName >> oss存储内存已存在的key & filename

/*** web端阿里云复制* @param  {Object} sourceName 需要复制的key* @param  {Object} aliObjName 上传命名(key)* @param  {Object} result token* @return {Object}*/aliUpCopy: (sourceName,aliObjName,result) => {    let client = new OSS({        accessKeyId: result.AccessKeyId,        accessKeySecret: result.AccessKeySecret,        stsToken: result.SecurityToken,        endpoint: result.endpoint,        bucket: result.bucket,        secure: true    });    // 复制文件    client.copy(aliObjName, sourceName, {}).then(function (result) {            }).catch(function (err) {            });},

6、下载文件

/** * 下载 * @param  {Object} URL objkey 即上传命名,阿里云oss上存储的文件名 * @param  {Object} resize 需要限制下载的图片尺寸,可自定义 * @return {Object} */downLoadAliUrl: (URL, resize) => {    // 获取cookie存储的token    let aliOssMsg;    if (utils.getCookie('setAliOssToken')) {        aliOssMsg = JSON.parse(utils.getCookie('setAliOssToken'));    }    let client = new OSS({        accessKeyId: aliOssMsg.AccessKeyId,        accessKeySecret: aliOssMsg.AccessKeySecret,        stsToken: aliOssMsg.SecurityToken,        endpoint: aliOssMsg.endpoint,        bucket: aliOssMsg.bucket,        secure: true    });    // 下载文件    const result = client.signatureUrl(URL, {process: resize});    return result;}

ps: 

a、token有时效性,考虑token是否实时获取

b、文件下载,下载视频或音频不能带resize

c、bucket,区分环境、域名。

*考虑不全,可查看官方api文档

地址:

转载于:https://www.cnblogs.com/CaktyRiven/p/10542297.html

你可能感兴趣的文章
svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法...
查看>>
熟用TableView
查看>>
Java大数——a^b + b^a
查看>>
poj 3164 最小树形图(朱刘算法)
查看>>
百度贴吧图片抓取工具
查看>>
服务器内存泄露 , 重启后恢复问题解决方案
查看>>
ajax post 传参
查看>>
2.1命令行和JSON的配置「深入浅出ASP.NET Core系列」
查看>>
android一些细节问题
查看>>
KDESVN中commit时出现containing working copy admin area is missing错误提示
查看>>
利用AOP写2PC框架(二)
查看>>
【动态规划】skiing
查看>>
java定时器的使用(Timer)
查看>>
Android实现静默安装与卸载
查看>>
ef codefirst VS里修改数据表结构后更新到数据库
查看>>
boost 同步定时器
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
解决php -v查看到版本与phpinfo()版本不一致问题
查看>>
iOS-解决iOS8及以上设置applicationIconBadgeNumber报错的问题
查看>>