Не могу получить подписанный URL после загрузки - PullRequest
0 голосов
/ 11 июля 2019

После загрузки файла функция застревает, получая подписанный URL.

Когда file.getSignedUrl () закомментирован, функция работает.

fstream.on('finish', function () {
    var bucket = admin.storage().bucket();
    // Upload a local file to a new file to be created in your bucket.
    bucket.upload(tempFilePath,{ destination: filePath+fileName} ,function (err, file) {
    if (!err) {
    console.log("Uploaded: " + fileName);
    fs.unlinkSync(tempFilePath);
    return file.getSignedUrl({
        action: 'read',
        expires: '03-17-2500'
        }, function(error, url) {
            if (error) {
            console.error(error);
            return callback(new Error('could not get url: ', error))
            }
        console.log("Uploaded url : " + url);
        return callback(null, url)
        })

        //return callback(null, "happy")

        }else{
            console.error("err: " + err);
            return callback(new Error('could not upload'))
        }
    });
});

1 Ответ

0 голосов
/ 18 июля 2019

Чтобы понять подписанный URL, проверьте Документация Google Cloud Storage

Для облачной функции с Node.js getSignedUrl вы можете использовать в качестве ссылки этот пример .

Необходимые условия для подписи большого двоичного объекта:

  1. В проекте должен быть включен Google Identity and Access Management (IAM) API
  2. Учетной записи службы требуется разрешение: iam.serviceAccounts. {GetAccessToken, signBlob} Учетная запись службы облачных функций (cloudfunctions.serviceAgent) имеет это разрешение
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...