Просмотр исходного кода

✨ feat(files): 增强分片上传策略API响应

- 添加partCount参数支持,默认为1
- 优化API响应格式,包含uploadId、bucket、key、host和partUrls字段
- 添加MinioService导入,为后续功能扩展做准备
yourname 8 месяцев назад
Родитель
Сommit
7e2ebaef55
1 измененных файлов с 9 добавлено и 2 удалено
  1. 9 2
      src/server/api/files/multipart-policy/post.ts

+ 9 - 2
src/server/api/files/multipart-policy/post.ts

@@ -1,5 +1,6 @@
 import { createRoute, OpenAPIHono, z } from '@hono/zod-openapi';
 import { FileService } from '@/server/modules/files/file.service';
+import { MinioService } from '@/server/modules/files/minio.service';
 import { ErrorSchema } from '@/server/utils/errorHandler';
 import { AppDataSource } from '@/server/data-source';
 import { AuthContext } from '@/server/types/context';
@@ -84,9 +85,15 @@ const fileService = new FileService(AppDataSource);
 const app = new OpenAPIHono<AuthContext>().openapi(createMultipartUploadPolicyRoute, async (c) => {
   try {
     const data = await c.req.json();
-    const result = await fileService.createMultipartUploadPolicy(data);
+    const result = await fileService.createMultipartUploadPolicy(data, data.partCount || 1);
     
-    return c.json(result, 200);
+    return c.json({
+      uploadId: result.uploadId,
+      bucket: result.bucket,
+      key: result.key,
+      host: `${process.env.MINIO_USE_SSL ? 'https' : 'http'}://${process.env.MINIO_ENDPOINT}:${process.env.MINIO_PORT}`,
+      partUrls: result.uploadUrls
+    }, 200);
   } catch (error) {
     const message = error instanceof Error ? error.message : '生成分片上传策略失败';
     return c.json({ code: 500, message }, 500);