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

specify upload namespace for gcs multipart uplaod

Futa Arai 1 год назад
Родитель
Сommit
80782da948
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      apps/app/src/server/service/file-uploader/gcs/multipart-uploader.ts

+ 4 - 1
apps/app/src/server/service/file-uploader/gcs/multipart-uploader.ts

@@ -1,9 +1,11 @@
 import type { Bucket, File } from '@google-cloud/storage';
 import type { Bucket, File } from '@google-cloud/storage';
 // eslint-disable-next-line no-restricted-imports
 // eslint-disable-next-line no-restricted-imports
 import axios from 'axios';
 import axios from 'axios';
+import urljoin from 'url-join';
 
 
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
+import { configManager } from '../../config-manager';
 import { MultipartUploader, UploadStatus, type IMultipartUploader } from '../multipart-uploader';
 import { MultipartUploader, UploadStatus, type IMultipartUploader } from '../multipart-uploader';
 
 
 const logger = loggerFactory('growi:services:fileUploaderGcs:multipartUploader');
 const logger = loggerFactory('growi:services:fileUploaderGcs:multipartUploader');
@@ -26,7 +28,8 @@ export class GcsMultipartUploader extends MultipartUploader implements IGcsMulti
   constructor(bucket: Bucket, uploadKey: string, maxPartSize: number) {
   constructor(bucket: Bucket, uploadKey: string, maxPartSize: number) {
     super(uploadKey, maxPartSize);
     super(uploadKey, maxPartSize);
 
 
-    this.file = bucket.file(this.uploadKey);
+    const namespace = configManager.getConfig('crowi', 'gcs:uploadNamespace');
+    this.file = bucket.file(urljoin(namespace || '', uploadKey));
   }
   }
 
 
   async initUpload(): Promise<void> {
   async initUpload(): Promise<void> {