Вам нужно создать подписанный URL-адрес, используя getSignedURL с помощью модуля @ google-cloud / storage NPM.
Пример:
const gcs = require('@google-cloud/storage')({keyFilename: 'service-account.json'});
// ...
const bucket = gcs.bucket(bucket);
const file = bucket.file(fileName);
return file.getSignedUrl({
action: 'read',
expires: '03-09-2491'
}).then(signedUrls => {
// signedUrls[0] contains the file's public URL
});
Вам нужно будет инициализировать @google-cloud/storage
с помощью учетных данных вашей учетной записи службы , поскольку учетные данные по умолчанию для приложения будут недостаточными.
UPDATE: The Cloud Теперь SDK хранилища можно получить через SDK Firebase Admin, который действует как обертка в области @ облака / хранилища Google. Вам все равно придется запустить SDK с учетной записью службы, как правило, через второй экземпляр, отличный от стандартного.
Вы можете сделать это с помощью суб-запроса, а затем произвести и объединить эти данные. Попробуйте что-то в этом роде:
select week,
count(*) as total,
sum(technical) as technical,
sum(non_technical) as non_technical)
from(
select week,
case(type) when 'Technical' then 1 else 0 END as technical,
case(type) when 'Non-Technical' then 1 else 0 END as non_technical
) as data
GROUP BY week