You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.5 KiB
43 lines
1.5 KiB
import OSS from 'ali-oss';
|
|
const baseUrl = 'http://oss-aishangjia.oss-cn-shenzhen.aliyuncs.com';
|
|
export const uploadAliOss = async (file, options) => {
|
|
// 构建上传文件参数
|
|
|
|
// 获取上传文件所需要的STS Token
|
|
// 直接通过node.js上传
|
|
// console.log(token)
|
|
const client = new OSS({
|
|
region: 'oss-cn-shenzhen',
|
|
accessKeyId: 'LTAI4GKGZ9Z2Z8JZ77c3GNZP',
|
|
accessKeySecret: 'BiDkpS7UXj72HWwDWaFZxiXjNFBNCM',
|
|
bucket: 'oss-aishangjia',
|
|
secure: true
|
|
});
|
|
|
|
const headers = {
|
|
// 指定该Object被下载时的网页缓存行为。
|
|
'Cache-Control': 'no-cache',
|
|
// 指定该Object被下载时的名称。
|
|
// 指定该Object被下载时的内容编码格式。
|
|
'Content-Encoding': 'utf-8',
|
|
// 指定过期时间,单位为毫秒。
|
|
Expires: '1000',
|
|
// 指定Object的存储类型。
|
|
'x-oss-storage-class': 'Standard',
|
|
// 指定初始化分片上传时是否覆盖同名Object。此处设置为true,表示禁止覆盖同名Object。
|
|
'x-oss-forbid-overwrite': 'true'
|
|
};
|
|
|
|
const suffix = file.name.substring(file.name.lastIndexOf('.')); // .txt
|
|
const objectName = Date.now() + suffix;
|
|
|
|
// object-name可以自定义为文件名(例如file.txt)或目录(例如abc/test/file.txt)的形式,实现将文件上传至当前Bucket或Bucket下的指定目录。
|
|
const result = await client.multipartUpload(objectName, file, {
|
|
...options,
|
|
parallel: 4,
|
|
partSize: 1024 * 1024 * 5
|
|
});
|
|
|
|
result.url = `${baseUrl}/${result.name}`;
|
|
return Promise.resolve(result);
|
|
};
|