无法从 getObject API 获取错误以从 S3 下载/获取对象(音频文件)

0

【以下的问题经过翻译处理】 我的Amazon Connect通话录音以.wav文件的形式存储在S3上,我想在第三方应用程序中获取并播放这些录音。为此,我使用了getObject API,尝试按名称获取/下载.wav文件,但我得到了**Cannot Get Error的错误提示。同时,我想在键路径中提供路径例如 Connect/Lab/2022/04/08/abc.wav**,这是可能的吗?如何解决?下面是我的代码:

1 回答
0

【以下的回答经过翻译处理】 通过以下方式实现:

require("dotenv").config();
const aws = require('aws-sdk');

const expres = require("express");
const app = expres();

app.listen(3001);

app.get('/getfilefromS3', async (req, res, next) => {

  aws.config.update({
    secretAccessKey: process.env.ACCESS_SECRET,
    accessKeyId: process.env.ACCESS_KEY,
    region: process.env.REGION
  })

  const s3 = new aws.S3(secretAccessKey = process.env.ACCESS_SECRET, accessKeyId = process.env.ACCESS_KEY);

  var params = { Bucket: process.env.BUCKET, Key: "connect/oblab2/CallRecordings/2022/04/08/" + req.query.filename };

  s3.getObject(params, function (err, data) {
    if (err) {
      res.status(200);
      res.end('Error Fetching File');
    }
    else {
      res.attachment(params.Key); // 设置文件名
      res.type(data.ContentType); // 设置文件类型
      res.send(data.Body);        // 发送文件缓冲区
    }
  });
})

然后访问端点: http://localhost:3001/getfilefromS3?filename=filename.wav

profile picture
专家
已回答 6 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则