Как мне получить подписанный пакет от gcs? - PullRequest
0 голосов
/ 19 января 2019

Работа с облачными функциями для получения списка подписанных ссылок для моих изображений.Прямо сейчас я получаю ошибку SigningError: Cannot sign data without client_email .

Я пытался сделать просто const storage = new Storage(); без добавления объекта конфигурации, но я все еще получаю ту же ошибку.Я даже попробовал:

const storage = new Storage({ 
  projectId: projectId,
  keyFilename:'./cert.json' //my service account file
});

Но от этого я ничего не получаю, даже сообщение об ошибке.Моя функция просто возвращает пустой массив []

Как мне настроить вещи так, чтобы я мог возвращать подписанные URL-адреса?

const functions = require('firebase-functions');
const admin = require('firebase-admin');    
import * as _ from 'lodash'
const {Storage} = require('@google-cloud/storage');
const projectId = 'myProject';
const storage = new Storage({ 
  projectId: projectId,
});

export const getPublicURLS = async()=>{
  let bucketName='myBucket.appspot.com'
  const [files] = await storage.bucket(bucketName).getFiles({prefix:'myTestPrefix'});
  files.shift(); //remove the folder object
  let list = await _.map(files, (file)=>{
    return file.getSignedUrl({
      action: 'read',
      expires: '03-17-2025'
    }).then(results => {
      console.log(results);
      const url = results[0];
      return url;
    })
    .catch(err => {
      console.error('ERROR:', err);
    });
  })
  return list;
}
...