上传文件到阿里云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 = fileName
        resolve(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-blog.csdnimg.cn/20200110173910989.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppdXdhbmxpNjY2,size_16,color_FFFFFF,t_70)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值