Получить возвращаемое значение функции getSignedUrl AWS в отдельной функции с обратным вызовом - PullRequest
0 голосов
/ 02 сентября 2018

У меня есть функция для получения сигнатуры для s3 в отдельном файле javascript (s3.js). Теперь мне нужно вызвать эту функцию в моем маршруте, помещенном в другой файл. getSignedUrl работает, и я смог правильно записать результат. Но он не передает результат функции вызывающей стороны.

получить подписанную функцию URL (файл s3.js)

 getPreSignedurl: function(filekey,callback) {

        const bucket = 'bucket-name'
        const key = filekey
        const signedUrlExpireSeconds = 60 * 5
        s3.getSignedUrl('getObject', {
            Bucket: bucket,
            Key: key,
            Expires: signedUrlExpireSeconds
        }, function(err, url) {
            if (err) return err
            else {
                console.log(url); //url prints perfectly 
                callback(url);
            }
        })
    }

Функция выше работает правильно и регистрирует URL, но не передает URL функции вызывающей стороны. Вызывающая функция выглядит следующим образом

var S3 = require("./s3");

router.post('/get_prifile_pic_upload_presigned_url', passport.authenticate('jwt', {session: false}), authRole, function(req,res, next) {
     S3.getPreSignedurl(req.body.filename, function(err, data) {
        if (err) return (err);
        else {
            //cannot get url from here
            return res.json({
               success: true,
               msg: 'presigned',
               obj:data
            });
        }
     });
 });

Я не могу получить подписанный внутренний URL из этой функции. кто-нибудь может мне помочь?

...