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= newOSS({
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= newOSS({
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= newOSS({
accessKeyId: aliOssMsg.AccessKeyId,
accessKeySecret: aliOssMsg.AccessKeySecret,
stsToken: aliOssMsg.SecurityToken,
endpoint: aliOssMsg.endpoint,
bucket: aliOssMsg.bucket,
secure:true});//下载文件
const result =client.signatureUrl(URL, {process: resize});returnresult;
}
ps:
a、token有时效性,考虑token是否实时获取
b、文件下载,下载视频或音频不能带resize
c、bucket,区分环境、域名。
*考虑不全,可查看官方api文档