oss-upload.js
浏览器端直传aliyun oss
安装
npm i oss-upload.js -S
使用
import ossUpload from 'oss-upload.js';
ossUpload( ossConfig , aimFolder , fileObj , fileName ).subscribe(res =>{});
参数:
ossConfig: 阿里云配置项参考 document.
aimFolder: 位于oss上的目标文件夹,用于放置上传的文件.
fileObj: 需要上传的File对象或Blob对象
fileName: 非必填项,如果不填,则会计算文件的MD5值作为文件名
返回:
ossUpload() 会返回status 和 data组成的对象.
返回示例:
{status:200,data:'htto://***.jpg'}
{status:300,data:1.234} // 如果文件大小大于20mb,则会在上传时返回300状态,同时data返回当前上传的百分比.
{status:400,data:''}
SDK 上传方法:
当文件大小大于20mb时,使用 put()进行上传,否则会使用multipartUpload()进行分片上传.
完整例子
import ossUpload from 'oss-upload.js';
document.querySelector("#uploader").addEventListener("change", file => {
const uploadObservable = ossUpload(
{
region: "oss-cn-hangzhou",
accessKeyId: "yourAccessKeyId",
accessKeySecret: "yourAccessKeySecret",
bucket: "yourBucket"
},
"upload",
file.target.files[0]
).subscribe(res =>{
switch(res.status){
case 200:
// upload successed
uploadObservable.unsubscribe();
break;
case 300:
// uploading
break;
case 400:
// upload failed
break;
}
});
});