| | |
| | | } |
| | | |
| | | //上传文件至OSS |
| | | async function putObject(file) { |
| | | async function putObject(file, uploadProgress) { |
| | | var client = getOssClient() |
| | | if (client == null) { |
| | | return false; |
| | |
| | | |
| | | var filename = dateToStr2(new Date()) + "_" + file.name |
| | | |
| | | // 填写Object完整路径。Object完整路径中不能包含Bucket名称。 |
| | | // 您可以通过自定义文件名(例如exampleobject.txt)或文件完整路径(例如exampledir/exampleobject.txt)的形式实现将数据上传到当前Bucket或Bucket中的指定目录。 |
| | | // data对象可以自定义为file对象、Blob数据或者OSS Buffer。 |
| | | // // 填写Object完整路径。Object完整路径中不能包含Bucket名称。 |
| | | // // 您可以通过自定义文件名(例如exampleobject.txt)或文件完整路径(例如exampledir/exampleobject.txt)的形式实现将数据上传到当前Bucket或Bucket中的指定目录。 |
| | | // // data对象可以自定义为file对象、Blob数据或者OSS Buffer。 |
| | | // const options = { |
| | | // meta: {temp: "demo"}, |
| | | // mime: "json", |
| | | // headers: {"Content-Type": "text/plain"}, |
| | | // }; |
| | | // |
| | | // return await client.put(filename, file, options); |
| | | |
| | | const options = { |
| | | meta: {temp: "demo"}, |
| | | mime: "json", |
| | | headers: {"Content-Type": "text/plain"}, |
| | | // 获取分片上传进度、断点和返回值。 |
| | | progress: (p, cpt, res) => { |
| | | // console.log(p); |
| | | uploadProgress(p)//回调上传进度 |
| | | }, |
| | | // 设置并发上传的分片数量。 |
| | | parallel: 4, |
| | | // 设置分片大小。默认值为1 MB,最小值为100 KB。 |
| | | partSize: 1024 * 1024, |
| | | // headers, |
| | | // 自定义元数据,通过HeadObject接口可以获取Object的元数据。 |
| | | meta: {year: 2020, people: "test"}, |
| | | mime: "text/plain", |
| | | }; |
| | | |
| | | return await client.put(filename, file, options); |
| | | // client.put(filename, file, options).then((e) => { |
| | | // return true; |
| | | // }).catch((e) => { |
| | | // return false; |
| | | // }) |
| | | return await client.multipartUpload(filename, file, {...options}); |
| | | } |
| | | |
| | | //获取OSS文件URL |
| | |
| | | const domain = filepath.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)/im)[0] + "/";//域名部分 |
| | | // 配置响应头实现通过URL访问时自动下载文件,并设置下载后的文件名。 |
| | | const filename = filepath.split(domain)[1]; |
| | | const response = { |
| | | "content-disposition": `attachment; filename=${encodeURIComponent( |
| | | filename |
| | | )}`, |
| | | }; |
| | | // 填写Object完整路径。Object完整路径中不能包含Bucket名称。 |
| | | const url = client.signatureUrl(filename); |
| | | const url = client.signatureUrl(filename,{response}); |
| | | return url; |
| | | } |