在AWS Javascript SDK V3中,使用了凭证提供者链(Credential Provider Chain)的功能,可以让应用程序按照一定的优先级顺序选择使用AWS凭证,从而方便地判断和执行相应操作。在SDK V3中,需要手动添加凭证提供者,代码示例如下:
import { S3Client } from "@aws-sdk/client-s3";
import { fromIni } from "@aws-sdk/credential-provider-ini";
import { EnvironmentCredentials, SharedIniFileCredentials } from "@aws-sdk/credential-provider-node";
const s3Client = new S3Client({
region: "us-west-2",
credentials: fromIni({profile: "my-profile"}), // 从AWS配置文件读取凭证
credentialDefaultProvider: () => {
return new EnvironmentCredentials("AWS"); // 从环境变量中读取凭证
},
credentialProvider: () => {
return new SharedIniFileCredentials({profile: "my-profile"}); // 使用共享的AWS配置文件中的凭证
}
});
以上代码中,fromIni
方法可以将AWS配置文件中的凭证提供给SDK使用。如果没有指定credentials
参数,则SDK会默认使用fromIni
从~/.aws/credentials
找到凭证。
credentialDefaultProvider
方法则可以让SDK从环境变量中读取凭证。在代码示例中,指定了使用AWS凭证,即从环境变量中读取AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
。
credentialProvider
则可以使用共享的AWS配置文件中的凭证。在代码示例中,指定了读取配置文件中名为“my-profile”的AWS凭证。
以上凭证提供者会按照顺序依次被调用来获取AWS凭证。如果前一个凭证提供者失败,SDK会依次尝试下