76 lines
1.9 KiB
TypeScript
76 lines
1.9 KiB
TypeScript
// 封装上传文件的方法 http://121.5.37.142:9001/browser/file-upload 后台查看的网址
|
|
import AWS from 'aws-sdk'
|
|
|
|
// 地址路径
|
|
let endpoint: string = 'http://121.5.37.142:9000'
|
|
// 账号
|
|
let accessKeyId: string = 'admin'
|
|
// 密码
|
|
let secretAccessKey: string = 'minio123456'
|
|
|
|
|
|
// 上传文件的基础配置
|
|
const s3 = new AWS.S3({
|
|
endpoint: endpoint,
|
|
accessKeyId: accessKeyId,
|
|
secretAccessKey: secretAccessKey,
|
|
region: 'us-east-1', // 写死就行
|
|
s3ForcePathStyle: true
|
|
});
|
|
|
|
// 上传图片的方法
|
|
// 传入的 肯定是一个 proform 的 上传图片的数组格式
|
|
export async function handleMinIOUpload(fileList: any) {
|
|
let fileRes: any = []
|
|
for (let i = 0; i < fileList.length; i++) {
|
|
let file: any = fileList[i]
|
|
const key = `${new Date().getTime()} ${file.name.toString()}`;
|
|
|
|
|
|
const result = await s3.upload({
|
|
Bucket: 'file-upload',
|
|
Key: key,
|
|
Body: file.originFileObj,
|
|
}).promise();
|
|
console.log('上传成功:', result);
|
|
fileRes.push({
|
|
name: file.name.toString(),
|
|
key: key,
|
|
url: result.Location
|
|
})
|
|
}
|
|
|
|
return fileRes
|
|
};
|
|
|
|
// 删除图片的方法
|
|
export async function handleMinIODelete(fileKey: string) {
|
|
// 文件的key名称
|
|
const result = await s3.deleteObject({
|
|
Bucket: 'file-upload', // 你的桶名
|
|
Key: fileKey, // 上传时的文件名(路径+文件名)
|
|
}).promise();
|
|
return result
|
|
}
|
|
|
|
|
|
// 读取文件
|
|
export async function handleMinIOPriview(fileName: string[]) {
|
|
|
|
let resultList = []
|
|
for (let i = 0; i < fileName.length; i++) {
|
|
const url = await s3.getSignedUrlPromise('getObject', {
|
|
Bucket: 'file-upload',
|
|
Key: fileName[i],
|
|
Expires: 3600
|
|
});
|
|
resultList.push({
|
|
url: url,
|
|
name: fileName[i]
|
|
})
|
|
}
|
|
return resultList
|
|
// window.open(url);
|
|
}
|
|
|