AWS更新节点js sdk v3中的凭证

rxy*_*xyz 2 amazon-web-services node.js aws-sdk-nodejs

在 aws node v2 sdk 中,我们可以在启动客户端后更新凭证

var AWS = require('aws-sdk');
var S3 = AWS.S3();
AWS.config.update({
  accessKeyId: 'AccessKeyId',
  secretAccessKey: 'SecretAccessKey',
  sessionToken: 'SessionToken'
});
Run Code Online (Sandbox Code Playgroud)

我们可以在 v3 sdk 中启动客户端后更新凭据吗

var s3 = require('@aws-sdk/client-s3')
var s3Client = s3.S3Client();
// now update the credentials like in sdk v2
Run Code Online (Sandbox Code Playgroud)

Erv*_*gyi 5

您无法更新 v2 中客户端的配置。如果您想使用不同的凭证连接到AWS,您可以简单地创建另一个客户端对象:

const { S3Client } = require("@aws-sdk/client-s3");

// client with default credentials from my ./aws/config and ./aws/credentials file
const s3Client = S3Client();

// another client with different credentials
const otherS3Client = new S3Client({
    credentials: {
        accessKeyId: 'AccessKeyId',
        secretAccessKey: 'SecretAccessKey',
        sessionToken: 'SessionToken'
    }
});
Run Code Online (Sandbox Code Playgroud)

在 AWS v3 JavaScript SDK 中,AWS 凭证是按服务设置的(请参阅:文档)。如果您在创建客户端时未指定任何凭据,凭据提供程序将尝试在其他位置查找您的凭据,例如环境变量、令牌缓存等。