Я использую следующий код для создания подписанного URL для своего контента:
var storage = require('@google-cloud/storage')();
var myBucket = storage.bucket('my-bucket');
var file = myBucket.file('my-file');
//-
// Generate a URL that allows temporary access to download your file.
//-
var request = require('request');
var config = {
action: 'read',
expires: '03-17-2025'
};
file.getSignedUrl(config, function(err, url) {
if (err) {
console.error(err);
return;
}
// The file is now available to read from the URL.
});
Это создает URL, начинающийся с https://storage.googleapis.com/my-bucket/
Если я размещу этот URLв браузере он доступен для чтения.
Тем не менее, я предполагаю, что URL является прямым доступом к файлу корзины и не проходит через мой настроенный CDN.
Я вижу это в документах (https://cloud.google.com/nodejs/docs/reference/storage/1.6.x/File#getSignedUrl) вы можете передать опцию cname, которая преобразует URL для замены https://storage.googleapis.com/my-bucket/
в мой CDN корзины.
ОДНАКО, когда я копирую результирующий URL, учетная запись службы или результирующий URL непохоже, у него есть доступ к ресурсу.
Я добавил учетную запись службы администрирования firebase в корзину, но все равно не получаю доступа.
Кроме того, из документов CDN, подписанный URL, кажетсямного отличается от подписанного через этот API. Можно ли создать из API URL-адрес со знаком CDN, или я должен вручную создать его, как описано в: https://cloud.google.com/cdn/docs/using-signed-urls?hl=en_US&_ga=2.131493069.-352689337.1519430995#configuring_google_cloud_storage_permissions?