在对我的 node.js 应用程序的多个请求中重复使用相同的 AWS.S3 实例

Reuse same instance of AWS.S3 in multiple requests to my node.js app

在每个请求中使用相同的 AWS.S3 实例是否安全?它会处理重新连接之类的事情吗?或者我是否需要在我的控制器操作中实例化 s3 客户端?

换句话说,我可以在控制器操作范围之外安全地实例化客户端吗:

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 协议是无状态的,不存在可能丢失的维护连接。