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

标签 node.js amazon-s3 aws-sdk-js

在每个请求中使用相同的 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/

相关文章:

node.js - 在 node.js 中使用 Node 纤程时,在 GC 期间 V8 内部出现 "Fatal error"

node.js - 如何将 `yarn.lock` 与 `package.json` 同步?

java - 伪 "lock"对象可以在 Amazon S3 API 中使用吗?

ruby-on-rails - 使用载波和雾将文件上传到 S3 时缺少要求

node.js - react native - fatal error : Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Node.JS 调试 Node Inspector 不是单步执行?

node.js - 超时时间超过 2000 毫秒。对于异步测试和 Hook ,确保调用 "done()";如果返回 Promise,请确保它得到解决

api - Amazon S3/OpenStack Swift API 框架

node.js - 有没有办法从 node.js 同步调用 AWS Lambda?

angularjs - 如何使用 imgURL 一次从 Amazon S3 检索多个图像?