Yuki Takei 2 lat temu
rodzic
commit
09c4049936

+ 3 - 2
apps/app/src/server/service/file-uploader/aws.ts

@@ -11,6 +11,7 @@ import {
 import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
 import urljoin from 'url-join';
 
+import { IAttachmentDocument } from '~/server/models/attachment';
 import loggerFactory from '~/utils/logger';
 
 import { configManager } from '../config-manager';
@@ -24,7 +25,7 @@ const logger = loggerFactory('growi:service:fileUploaderAws');
  * File metadata in storage
  * TODO: mv this to "./uploader"
  */
-  interface FileMeta {
+interface FileMeta {
   name: string;
   size: number;
 }
@@ -68,7 +69,7 @@ class AwsFileUploader extends AbstractFileUploader {
   /**
    * @inheritdoc
    */
-  override respond(res: Response, attachment: Response): void {
+  override respond(res: Response, attachment: IAttachmentDocument): void {
     throw new Error('Method not implemented.');
   }
 

+ 3 - 2
apps/app/src/server/service/file-uploader/file-uploader.ts

@@ -1,5 +1,6 @@
 import { randomUUID } from 'crypto';
 
+import type { IAttachmentDocument } from '~/server/models/attachment';
 import loggerFactory from '~/utils/logger';
 
 import { configManager } from '../config-manager';
@@ -30,7 +31,7 @@ export interface FileUploader {
   getTotalFileSize(): Promise<number>,
   doCheckLimit(uploadFileSize: number, maxFileSize: number, totalLimit: number): Promise<CheckLimitResult>,
   canRespond(): boolean
-  respond(res: Response, attachment: Response): void,
+  respond(res: Response, attachment: IAttachmentDocument): void,
 }
 
 export abstract class AbstractFileUploader implements FileUploader {
@@ -146,6 +147,6 @@ export abstract class AbstractFileUploader implements FileUploader {
   /**
    * Respond to the HTTP request.
    */
-  abstract respond(res: Response, attachment: Response): void;
+  abstract respond(res: Response, attachment: IAttachmentDocument): void;
 
 }

+ 8 - 3
packages/core/src/interfaces/attachment.ts

@@ -6,13 +6,18 @@ import type { IUser } from './user';
 export type IAttachment = {
   page?: Ref<IPage>,
   creator?: Ref<IUser>,
-  createdAt: Date,
+  fileName: string,
+  fileFormat: string,
   fileSize: number,
+  originalName: string,
+  temporaryUrlCached?: string,
+  temporaryUrlExpiredAt?: Date,
+
+  createdAt: Date,
+
   // virtual property
   filePathProxied: string,
-  fileFormat: string,
   downloadPathProxied: string,
-  originalName: string,
 };
 
 export type IAttachmentHasId = IAttachment & HasObjectId;