VUE上传文件到阿里云OSS

11 篇文章 2 订阅

VUE上传文件到阿里云OSS

时间:2021-01-08
版本:ali-oss ^6.11.2

安装

推荐npm安装,因为使用npm安装,所以此教程理论上和node.js后端的使用方式是通用的。

npm install ali-oss --save
yarn add ali-oss

初始化

let OSS = require('ali-oss');

let client = new OSS({
  // region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
  // oss-cn-hongkong.aliyuncs.com则填写oss-cn-hongkong
  region: '<oss region>',
  //云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用STS方式来进行API访问
  accessKeyId: '<Your accessKeyId(STS)>',
  accessKeySecret: '<Your accessKeySecret(STS)>',
  stsToken: '<Your securityToken(STS)>',
  bucket: '<Your bucket name>'
});

其中,使用STS临时授权访问OSS的情况下,才需要上传stsToken,否则可以不定义。
其值一般访问自己app的服务器获取。
node服务器如何获取STS临时授权
php服务器如何获取STS临时授权

上传

可上传的三种文件类型,可以是File,Blob,也可以是Buffer

// const data = '<File Object>';
// or const data = new Blob('content');
// or const data = new OSS.Buffer('content'));
let result = await client.put(upload_path, data);

如果data是dataURL类型,则先转为Blob然后再上传。

let updata = util.dataURLtoBlob(data);
let result = await client.put(upload_path, updata);

转换函数

dataURLtoBlob(dataurl) {  
  var arr = dataurl.split(','),
      mime = arr[0].match(/:(.*?);/)[1],
      bstr = atob(arr[1]),
      n = bstr.length,
      u8arr = new Uint8Array(n);
  while (n--) {
      u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], { type: mime });
},

上传路径upload_path可以直接是文件名,也可以是相对路径。最好填写相对路径。例如upload/image/IMG_2342.jpg

官方文档参考地址

安装:https://help.aliyun.com/document_detail/64041.html
上传:https://help.aliyun.com/document_detail/64047.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值