Как настроить среду Nodejs для Google Cloud Storage - PullRequest
0 голосов
/ 21 января 2019

Я новичок в Google Cloud Platform, я следую этому руководству

https://cloud.google.com/docs/authentication/getting-started#auth-cloud-implicit-nodejs

После установки переменных среды я использовал Google Cloud, эта строка вызывает проблему

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

когда я закомментирую эту строку, она работает, иначе выдает ошибку

TypeError: Expected `input` to be a `Function` or `Object`, got `undefined`
push../node_modules/gtoken/node_modules/pify/index.js.module.exports
D:/SE/Web/React/storybook/node_modules/gtoken/node_modules/pify/index.js:56
53 | var objType = typeof input;
54 | 
55 | if (!(input !== null && (objType === 'object' || objType === 
'function'))) {
> 56 |   throw new TypeError("Expected `input` to be a `Function` or 
`Object`, got `".concat(input === null ? 'null' : objType, "`"));
 | ^  57 | }
 58 | 
 59 | var filter = function filter(key) {
 View compiled
 ./node_modules/gtoken/build/src/index.js
 D:/SE/Web/React/storybook/node_modules/gtoken/build/src/index.js:65
 62 | 
 63 | var pify = require("pify");
 64 | 
 > 65 | var readFile = pify(fs.readFile);
 66 | var GOOGLE_TOKEN_URL = 'https://www.googleapis.com/oauth2/v4/token';
 67 | var GOOGLE_REVOKE_TOKEN_URL = 
'https://accounts.google.com/o/oauth2/revoke?token=';
 68 | 

1 Ответ

0 голосов
/ 25 января 2019

Я следовал тому же уроку, что вы упомянули выше. Это сработало для меня. Пожалуйста, убедитесь, что вы не пропустили ни одного шага в этом процессе.

  1. Очень важно Создать сервисный аккаунт и скачать файл JSON на ваш компьютер. Затем загрузите файл JSON в свой Облачная оболочка.
  2. Задайте для переменной GOOGLE_APPLICATION_CREDENTIALS в Cloud Shell путь к файлу JSON. Следуйте инструкциям на Установка переменной среды .
  3. Создать Virtual Environment. Выполнить virtualenv [ENVIRONMENT_NAME].
  4. Активировать среду, выполнив source [ENVIRONMENT_NAME]/bin/activate.
  5. Установить библиотеку @google-cloud/storage. Выполнить npm install --save @google-cloud/storage.
  6. Создать файл Nodejs. Добавьте форму кода Начало работы с аутентификацией> Проверка аутентификации Документация.
  7. Запустите файл, выполнив node [FILE_NAME].js.

Если вы получили ошибку:

Ошибка: [GSERVICEACCOUNT] не имеет доступа storage.buckets.list к проекту [PROJECT_NUMBER].

  1. Затем скопируйте весь [GSERVICEACCOUNT].
  2. К тебе Google Cloud Console.
  3. Перейти на страницу IAM & admin из меню навигации.
  4. Нажмите Add+.
  5. В New members добавить [GSERVICEACCOUNT].
  6. Сформируйте выпадающее меню Select a role, выберите роль Storage Admin.
  7. Нажмите на Save.

Теперь, если вы выполните снова node [FILE_NAME].js. Вы должны увидеть все корзины, перечисленные в вашей облачной оболочке.

...