newCloud/src/utils/uploadFile.ts
ylj20011123 9900baf6a3 update
2025-08-05 18:56:06 +08:00

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);
}