微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

s3 getSignedUrl 未在heroku 中返回正确的网址

如何解决s3 getSignedUrl 未在heroku 中返回正确的网址

我在 Heroku 中成功部署了以下代码

const s3 = new AWS.S3()
AWS.config.update({accessKeyId: process.env.NODE_APP_ACCESS_ID,secretAccessKey: process.env.NODE_APP_ACCESS_KEY})

 return new Promise((resolve,reject) => {
    //get presigned url

    var myBucket = process.env.NODE_APP_BUCKET_NAME;
    console.log(myBucket); //this logs correct bucket in heroku logs
    var myKey = "sounds/" + customer_id + "/" + sound_id + ".wav"; 
    console.log(myKey); //this logs correct key in heroku logs
    const signedUrlExpireSeconds = 60 * 5;
    try {
      const url = s3.getSignedUrl('getobject',{
        Bucket: myBucket,Key: myKey,Expires: signedUrlExpireSeconds
      });
      console.log(url);
      resolve(url)
    }
    catch {
      console.log('S3 Object does not exist');
      resolve('');
    }
  });

在本地测试中,正确的 url 会由此返回。但是,在 Heroku(即使输入正确)中,我将其作为输出https://s3.amazonaws.com/。不确定我在这里做错了什么,因为它在本地工作......

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。