在每个请求中使用相同的 AWS.S3 实例是否安全?它会处理重新连接之类的事情吗?或者我是否需要在我的 Controller 操作中实例化 s3 客户端?
换句话说,我可以在 Controller 操作范围之外安全地实例化客户端吗:
const s3 = new AWS.S3(myAwsConfiguration);
async myControllerAction(ctx, next) {
let s3Object = null;
try {
s3Object = await s3.getObject({
'Bucket': bucket,
'Key': key,
}).promise();
} catch(e) {
ctx.throw(500, 'cannot fetch from s3');
}
}
还是必须在里面做:
async myControllerAction(ctx, next) {
const s3 = new AWS.S3(myAwsConfiguration);
let s3Object = null;
try {
s3Object = await s3.getObject({
'Bucket': bucket,
'Key': key,
}).promise();
} catch(e) {
ctx.throw(500, 'cannot fetch from s3');
}
}
最佳答案
同时我了解到:
是的,重复使用同一个实例是绝对安全的。s3 协议(protocol)是无状态的,不存在可能丢失的维护连接。
关于node.js - 在对我的 node.js 应用程序的多个请求中重复使用相同的 AWS.S3 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64568633/