1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 上传文件到阿里云OSS

上传文件到阿里云OSS

时间:2021-01-05 23:47:39

相关推荐

上传文件到阿里云OSS

最近项目中有文件上传的功能,才发现阿里云oss真是个好东西。在其中做了好多的权限设置,角色、子账户、bucket等等。web端进行文件上传有多种方式

一、无需临时授权(安全性较低)

(一)、拿到权限直接上传

let arr = []arr.push(fileListPermit[0].originFileObj)let result = client.put(fileListPermit[0].originFileObj.name, new Blob(arr), { type: 'image/*' }).then(res=>{console.log('then的返回---', res)if (res.res.status === 200) {url = res.rse.requestUrls[0]}})

(二)、上传到指定文件夹内(多文件)

client.multipartUpload('oss-mobile/' + fileListPermit[0].originFileObj.name, fileListPermit[0].originFileObj, {progress: async function (p) {console.log('Progress: ' + p)}}).then(res => {console.log('穿到指定的文件目录下---', res)if (res.res.status === 200) {url = res.rse.requestUrls[0].split('?')[0]}})

二、进行临时授权

实现逻辑

(一)向服务端获取oss存储相关内容

若stsToken安全令牌有过期时间,需要在上传前鉴别令牌是否在有效期内

a、AccessKeyId、

b、AccessKeySecret

c、dir等

(二)STSClient创建STS(下文称:client)示例,进行临时授权

const client = STSClient({accessKeyId: AccessKeyId,accessKeySecret: AccessKeySecret,region: Region,stsToken: SecurityToken,bucket: 'oss仓库name'})

(三)使用创建的client对象将文件上传到oss

client.put(fileName, new Blob(fileList), { type: fileType }).then(res => {if (res.res.status === 200) {res.res.fileName = fileNameresolve(res.res)// url = res.rse.requestUrls[0]} else {reject(new Error('文件上传失败!'))}}).catch(error => {reject(error)})

三、文件下载

const url_ = client.signatureUrl(objectKey)// url为返回的文件在oss的路径

四、文件删除

client.delete(objectKey)```技术交流、提问![在这里插入图片描述](https://img-/0110173910989.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppdXdhbmxpNjY2,size_16,color_FFFFFF,t_70)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。