Google Cloud Storage неожиданный идентификатор «хранилище» - PullRequest
0 голосов
/ 05 ноября 2018

Я нашел эту документацию и эту документацию о загрузке файлов в Google Cloud Storage. Я написал этот код:

const {Storage} = require('@google-cloud/storage')();
const projectId = 'myapp-cd94d';
const storage = new Storage({
  projectId: projectId,
});

const bucketName = "myapp-cd94d.appspot.com";
const filename = { 'test': 'file'};

var serviceAccount = require("./serviceAccountKey.json")

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    storageBucket: "myapp-cd94d.appspot.com"
});

var bucket = admin.storage().bucket();

await storage.bucket(bucketName).upload(filename, {
  gzip: true,
  metadata: {
    cacheControl: 'no-cache',
  },
});

console.log(`${filename} uploaded to ${bucketName}.`);

Я попытался развернуть код и получил это сообщение об ошибке:

await storage.bucket(bucketName).upload(filename, {
      ^^^^^^^

SyntaxError: Unexpected identifier

Что-то не так с моей первой строкой

const {Storage} = require('@google-cloud/storage')();

Почему в фигурных скобках Storage? Я должен заменить {Storage} чем-то другим?

1 Ответ

0 голосов
/ 06 ноября 2018

Почему фигурные скобки расположены вокруг хранилища? Я должен заменить {Storage} чем-то другим?

Фигурные скобки вокруг Storage обозначают деконструирующее задание . Это позволяет извлекать несколько значений из данных, хранящихся в объектах и ​​массивах. Пример импорта из документации , которой вы поделились (const {Storage} = require('@google-cloud/storage');), верен.

Сообщение об ошибке SyntaxError: Unexpected identifier не говорит о том, что оно не идентифицировало storage, оно говорит, что не ожидало, что storage будет там. Ошибка связана с await.

await можно использовать только в функции async. Например:

async function myAsyncFunction() {
  let result = await lengthyFunction();

  console.log(result);
}

myAsyncFunction();

Попробуйте обернуть вызов загрузки сегмента в функцию async, чтобы избежать ошибки при использовании await.

...