OSS 上传「PUT」
场景需求
最初上传文件是借助后台 API 来实现文件的存储,相对现在主流的 OSS 直传来说,还是比较繁琐的。之前介绍的文件上传是基于 OSS 直传的 POST 方式实现的,需要借助 FormData 来实现文件的上传,相关代码案例请参考我之前写的文章 iView OSS 直传。
此次是借助阿里云提供的 ali-oss 来实现文件上传,此方法还支持大文件大断点续传,如有需要请参考 OSS 云存储官方提供的文档 API。OSS 的 PUT 上传方式支持异步上传和同步上传,上传成功后直接返回上传文件在阿里云云存储上的绝对路径;之前的 POST 上传方式是将文件对象转换成 FormData 对象来上传的,其返回的是上传文件的相对路径,若想获取文件在云存储上的绝对路径,还需要自己进行手动拼接,相比较 PUT 上传方式来说比较麻烦,而且还容易出错。
前期处理
首先要根据自己的实际情况来选择符合自己的 OSS 文件上传方式。此次我主要就 OSS 的 PUT 文件上传方式做介绍。 先登录阿里云 OSS 云存储的管理后台,进入自己索要配置的 bucket 类型,然后查找配置跨域资源共享(CORS)规则 ,来对该 bucket 的跨域资源共享规则按照官方文档给的要求来进行相应的设置。
图例

注:
- 此页面为配置跨域规则的页面,请确认已勾选 PUT**请求方式。
- 若没勾选此方式,当采用 PUT 方式上传文件时,控制台会报请求跨域错误。
代码案例
- 安装所需依赖
安装
注意:
- dayjs 在后续处理文件路径和文件重命名时需用到,若无需文件重命名则不用安装;
- element-plus 为基于 Vue3 的 ElementUI 升级版,此处主要用于文件上传时候相关校验的提示;
- 文件重命名
文件重命名
文件重命名参数介绍:
-
file:文件对象;
-
rootPath:文件根路径即在 OSS 存储的根目录;
-
fileType:要校验的文件类型格式;
-
size:上传文件的大小限制。
-
OSS 文件上传
文件上传
注意事项
- 多行注释处请留心配置,否则会报错。OSS.JS 附件已上传,下载后配置好 OSS 相关参数就可直接使用。
- OSS 的 PUT 上传方式第二参数即 file,支持 File 对象、Blob 数据 以及 OSS Buffer 等格式。
- OSS 直传使用
OSS 直传
结语
🥇🥈🥉:前期努力搬的砖,都是为后期造轮子准备的。若对您有所帮助,请帮忙点个赞 👍!