Przeglądaj źródła

WIP
refs GW-232: GCS にアップロードできる
- エイリアス設定
- bucket 取得や strage インスタンス取得

Otani Haruhiko 6 lat temu
rodzic
commit
4e95654607

+ 3 - 10
src/server/service/file-uploader/gcp.js

@@ -9,24 +9,17 @@ module.exports = function(crowi) {
   const { configManager } = crowi;
   const lib = new Uploader(configManager);
 
-  function getGcsConfig() {
-    return {
-      projectId: configManager.getConfig('crowi', 'gcs:projectId'),
-      credentials: {
-        client_email: configManager.getConfig('crowi', 'gcs:clientEmail'),
-        private_key: configManager.getConfig('crowi', 'gcs:privateKey'),
-      },
-    };
+  function getGcsBucket() {
+    return process.env.GCS_BUCKET;
   }
 
   function GCSFactory(isUploadable) {
-    const gcsConfig = getGcsConfig();
 
     if (!isUploadable) {
       throw new Error('GCP is not configured.');
     }
 
-    return new Storage(gcsConfig);
+    return new Storage();
   }
 
   function getFilePathOnStorage(attachment) {

+ 2 - 0
src/server/service/file-uploader/index.js

@@ -5,6 +5,8 @@ const envToModuleMappings = {
   mongo:   'gridfs',
   mongodb: 'gridfs',
   gridfs:  'gridfs',
+  gcp:     'gcp',
+  gcs:     'gcp',
 };
 
 class FileUploaderFactory {

+ 8 - 0
src/server/service/file-uploader/uploader.js

@@ -19,6 +19,14 @@ class Uploader {
         || !this.configManager.getConfig('crowi', 'aws:bucket'))) {
       return false;
     }
+    // method が gcp かつ、
+    // TODO 環境変数の取得方法をもう一度確認して gcp: ってところ修正する
+    if (method === 'gcp' && (
+      !this.configManager.getConfig('crowi', 'gcp:bucket')
+        || !this.configManager.getConfig('crowi', 'gcp:bucket'))
+    ) {
+      return false;
+    }
 
     return method !== 'none';
   }