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

feat: skip file transfer for aws/gcs => none

mizozobu 3 лет назад
Родитель
Сommit
0ce625c525

+ 6 - 0
packages/app/src/components/Admin/G2GDataTransferStatusIcon.tsx

@@ -31,6 +31,12 @@ const G2GDataTransferStatusIcon = ({ status, className, ...props }: Props): JSX.
     );
   }
 
+  if (status === G2G_PROGRESS_STATUS.SKIPPED) {
+    return (
+      <i className={`fa fa-ban fa-fw ${className}`} aria-label="skipped" {...props} />
+    );
+  }
+
   return <i className={`fa fa-circle-o fa-fw ${className}`} aria-label="pending" {...props} />;
 };
 

+ 1 - 0
packages/app/src/interfaces/g2g-transfer.ts

@@ -6,6 +6,7 @@ export const G2G_PROGRESS_STATUS = {
   IN_PROGRESS: 'IN_PROGRESS',
   COMPLETED: 'COMPLETED',
   ERROR: 'ERROR',
+  SKIPPED: 'SKIPPED',
 } as const;
 
 /**

+ 1 - 1
packages/app/src/server/routes/apiv3/g2g-transfer.ts

@@ -320,7 +320,7 @@ module.exports = (crowi: Crowi): Router => {
     // Start transfer
     // DO NOT "await". Let it run in the background.
     // Errors should be emitted through websocket.
-    g2gTransferPusherService.startTransfer(tk, req.user, collections, optionsMap);
+    g2gTransferPusherService.startTransfer(tk, req.user, collections, optionsMap, toGROWIInfo);
 
     return res.apiv3({ message: 'Successfully requested auto transfer.' });
   });

+ 10 - 1
packages/app/src/server/service/g2g-transfer.ts

@@ -132,6 +132,7 @@ interface Pusher {
     user: any,
     collections: string[],
     optionsMap: any,
+    toGROWIInfo: IDataGROWIInfo,
   ): Promise<void>
 }
 
@@ -400,7 +401,7 @@ export class G2GTransferPusherService implements Pusher {
   }
 
   // eslint-disable-next-line max-len
-  public async startTransfer(tk: TransferKey, user: any, collections: string[], optionsMap: any): Promise<void> {
+  public async startTransfer(tk: TransferKey, user: any, collections: string[], optionsMap: any, toGROWIInfo: IDataGROWIInfo): Promise<void> {
     const socket = this.crowi.socketIoService.getAdminSocket();
 
     socket.emit('admin:g2gProgress', {
@@ -459,6 +460,14 @@ export class G2GTransferPusherService implements Pusher {
       attachments: G2G_PROGRESS_STATUS.IN_PROGRESS,
     });
 
+    if (toGROWIInfo.attachmentInfo.type === 'none' && ['aws', 'gcs'].includes(this.crowi.configManager.getConfig('crowi', 'app:fileUploadType'))) {
+      socket.emit('admin:g2gProgress', {
+        mongo: G2G_PROGRESS_STATUS.COMPLETED,
+        attachments: G2G_PROGRESS_STATUS.SKIPPED,
+      });
+      return;
+    }
+
     try {
       await this.transferAttachments(tk);
     }