修改资源URL模式,不再存储https://domain 前缀

This commit is contained in:
2025-10-25 12:19:53 +08:00
parent f94ef73518
commit e4339a5b91
27 changed files with 347 additions and 137 deletions
+4 -23
View File
@@ -54,7 +54,7 @@ export async function initBucket(): Promise<void> {
* @param file - File 对象或 Buffer
* @param path - 文件存储路径(如: 'avatars/user123.jpg' 或 'posts/2024/image.png')
* @param metadata - 可选的元数据
* @returns 文件的访问URL
* @returns 文件 path = args.path
*/
export async function uploadFile(
file: File | Buffer,
@@ -82,7 +82,7 @@ export async function uploadFile(
await minioClient.putObject(BUCKET_NAME, path, buffer, buffer.length, metaData);
return getFileUrl(path);
return path;
} catch (error) {
console.error('Error uploading file:', error);
throw error;
@@ -96,29 +96,11 @@ export async function uploadFile(
* @returns 文件的访问URL
*/
export function getFileUrl(path: string): string {
const endpoint = process.env.MINIO_REAL_DOMAIN;
const endpoint = process.env.MINIO_PUBLIC_DOMAIN;
return `${endpoint}/${BUCKET_NAME}/${path}`;
}
/**
* 获取文件的临时访问URL(带签名,用于私有文件)
* @param path - 文件路径
* @param expirySeconds - 过期时间(秒),默认7天
* @returns 临时访问URL
*/
export async function getPresignedUrl(
path: string,
expirySeconds: number = 7 * 24 * 60 * 60
): Promise<string> {
try {
return await minioClient.presignedGetObject(BUCKET_NAME, path, expirySeconds);
} catch (error) {
console.error('Error generating presigned URL:', error);
throw error;
}
}
/**
* 下载文件
* @param path - 文件路径
@@ -225,7 +207,7 @@ export async function listFiles(
return new Promise((resolve, reject) => {
stream.on('data', (obj) => {
if (obj.name) {
files.push({ endpoint: `${process.env.MINIO_REAL_DOMAIN}/${BUCKET_NAME}`, ...obj, } as Minio.BucketItem & { endpoint: string });
files.push({ endpoint: `${process.env.MINIO_PUBLIC_DOMAIN}/${BUCKET_NAME}`, ...obj, } as Minio.BucketItem & { endpoint: string });
}
});
stream.on('end', () => resolve(files));
@@ -323,7 +305,6 @@ export default {
initBucket,
uploadFile,
getFileUrl,
getPresignedUrl,
downloadFile,
getFileStream,
deleteFile,