vue+oss前端直传oss 纯前端实现文件上传、下载、暂停上传(含demo)

let OSS = require('ali-oss');
let client = new OSS({
  region: '配置自己的',
  //云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,部署在服务端使用RAM子账号或STS,部署在客户端使用STS。
  accessKeyId: '配置自己的',
  accessKeySecret: '配置自己的',  bucket: '配置自己的' })

注:以上是配置OSS

文件上传api接口:

const put = async (ObjName, fileUrl, progressFun) => {
  try {
    let result = await client.multipartUpload(`${ObjName}`, fileUrl, progressFun) return result 
} catch (e) { console.log(e) } 
}
注:ObjName 可以是自定义文件名例如(dells.txt)也可以  `${userId}/${nowDay}/${ObjName}`  例如(/userId/nowDay/dells.txt)这样做文件目录  上传成功链接是这样的http://oss官网/userId/nowDay/dells.txt

  fileUrl 是文件file对象 或者 blob数据以及OSS buffer

  progressFun 是获取上传文件进度(可要可不要)

暂停上传:

cancelApi() {
  return client.cancel()
}
注:关闭上传窗口时 可以调用 (如果不暂停 关闭窗口后 会后台继续上传)

文件下载api接口:

async function download(fileUrl, filename) {
  return await client.signatureUrl(fileUrl, {
    response: {
      'content-disposition': `attachment;filename=${encodeURIComponent(filename)}`
    }
  })
}注释:fileurl:需要下载的文件连接   filename:下载的文件名字               (其中用到转码)

调用传参后 会返回一个下载连接 使用以下方法打开下载连接;

demo请看:https://github.com/wangyining-1/oss-upload-module

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值