google-cloud TypeError: gcs.bucket не является функцией - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь реализовать облачную функцию, но получаю ошибку, если мне нужно вот так

   var storage =require('@google-cloud/storage')(); 

вот так при развертывании

var storage = require('@google-cloud/storage');

, поэтому я решил использовать ее, как указано выше, нопопытался загрузить изображение, я получаю сообщение об ошибке "Ошибка типа: gcs.bucket не является функцией"

const os = require('os');
const path = require('path');

///

exports.onFileChange = functions.storage.object().onFinalize((event) => {
 const bucket = event.bucket;
 const contentType = event.contentType;
 const filePath = event.name;
 console.log('Changes made to bucket');

///

 if(path.basename(filePath).startsWith('renamed-')){
     console.log("File was previously renamed");
     return;
 }
 const gcs = storage({
    projectId: 'clfapi'
  });

///

 const destBucket = gcs.bucket(bucket);
 const tmFiilePath = path.join(os.tmpdir(), path.basename(filePath));
 const metadata = {contentType: contentType};

///

 return destBucket.file(filePath).download({
     destination: tmFiilePath
 }).then(() => {
     return destBucket.upload(tmFiilePath, {
         destination: 'renamed-' + path.basename(filePath),
         metadata: metadata
     })
   });
});

1 Ответ

0 голосов
/ 28 октября 2018

API изменен в версии 2.x SDK узла облачного хранилища.Согласно документации , вы импортируете SDK следующим образом:

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

Затем вы можете создать новый объект хранения:

// Creates a client
const storage = new Storage({
  projectId: projectId,
});

Тогда вы можете залезть в ведро:

const bucket = storage.bucket()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...