我正在尝试构建一个Express服务器,它将使用node.js和express将S3 bucket中的项目发送到客户机。
我在
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);
我已经稍微改变了一下:
app.get("/", (req, res) => {
const params = {
Bucket: env.s3ImageBucket,
Key: "images/profile/abc"
};
s3.getObject(params).createReadStream().pipe(res);
});
我相信这应该行得通。我遇到的问题是当文件不存在或S3返回某种类型的错误时。应用程序崩溃,我得到以下错误:
nosuchkey:指定的密钥不存在
我的问题是,如何捕获或处理此错误?我试过一些东西,比如把它包起来
s3.getObject
尝试/捕获块中的行,所有这些都不起作用。
如何捕获错误并以自己的方式处理?