GCS NodeJS API-запросы возвращаются пустыми - PullRequest
0 голосов
/ 23 мая 2019

Я следую инструкциям здесь для аутентификации в моем проекте GCS. Я загрузил учетные данные учетной записи службы и экспортировал переменную среды GOOGLE_APPLICATION_CREDENTIALS. Хотя, чтобы быть в безопасности, я явно указываю API на мой файл. Вот что у меня есть:

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

storage
    .getBuckets()
    .then(results => {
        const buckets = results[0];

        console.log('Buckets:');
        buckets.forEach(bucket => {
            console.log(bucket.name);
        });
    })
    .catch(err => {
        console.error('ERROR:', err);
    });

Когда я запускаю это с узлом, единственный вывод, который я получаю:

Buckets:

Подразумевается, что мое хранилище было успешно запрошено, и корзины не были найдены.

Однако есть несколько проблем. Я знаю, что мои корзины существуют, потому что я могу использовать gsutil ls, чтобы правильно увидеть все свои корзины. Кроме того, если я изменю поля projectId или keyFilename на недействительные, я получу то же поведение.

Если бы я не проходил аутентификацию, я бы ожидал какую-то ошибку, но ясно, что даже с совершенно недействительным файлом ключа он все равно не выдает ошибок.

Какие шаги я могу предпринять, чтобы отладить это? Без кода ошибки мне не на что идти.

1 Ответ

0 голосов
/ 24 мая 2019

Я понял, что проблема в том, что я указал путь к файлу как ~/path/to/file, потому что ~ ничего не значит вне оболочки, такой как bash.

Я понятия не имею, почему Node молча отказывал здесьвместо того, чтобы сказать мне, что он не может найти файл, но это определенно было проблемой, он работал после указания полного пути.

...