【发布时间】:2019-01-14 07:34:32
【问题描述】:
我正在尝试构建一个 Express 服务器,该服务器将使用 Node.js 和 Express 将 S3 存储桶中的项目发送到客户端。
我在AWS documentation上找到了以下代码。
var s3 = new AWS.S3({apiVersion: '2006-03-01'});
var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg'};
var file = require('fs').createWriteStream('/path/to/file.jpg');
s3.getObject(params).createReadStream().pipe(file);
我已将 I 稍微更改为以下内容:
app.get("/", (req, res) => {
const params = {
Bucket: env.s3ImageBucket,
Key: "images/profile/abc"
};
s3.getObject(params).createReadStream().pipe(res);
});
我相信这应该可以正常工作。我遇到的问题是文件不存在或 S3 返回某种类型的错误。应用程序崩溃,我收到以下错误:
NoSuchKey: 指定的键不存在
我的问题是,我怎样才能捕捉或处理这个错误?我尝试了一些方法,例如将 s3.getObject 行包装在 try/catch 块中,但都没有奏效。
如何捕捉错误并以自己的方式处理?
【问题讨论】:
标签: javascript node.js amazon-web-services express amazon-s3