首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AWS-SDK JS V3实例化S3类时出现‘'Credential is missing’错误

使用AWS-SDK JS V3实例化S3类时出现‘'Credential is missing’错误
EN

Stack Overflow用户
提问于 2020-06-27 23:42:33
回答 2查看 1.4K关注 0票数 7

当我在aws-sdk javascript的更新的v3中从class S3创建S3客户端时,我得到了en错误。

我添加了along参数,包括在服务级别(实例化S3类时)对用户进行身份验证(假设角色具有调用getObject的权限)时从aws sts获得的凭据以及其他参数。请看下面的代码:

代码语言:javascript
复制
const { S3, ... } = require("@aws-sdk/client-s3");

someFunc();
function someFunc(authUserCredentials) {
 ...
 try {

   const { AccessKeyid, SecretKey, SessionToken } = authUserCredentials;
   const s3Client = new S3({
                      signatureVersion: 'v4',
                      accessKeyId: AccessKeyId,
                      secretAccessKey: SecretKey,
                      sessionToken: SessionToken,
                      region: 'us-east-1',
   });

   console.log(s3Client.config);
   ...

 }catch(e) {
     console.error(e);
 }
}

我检查了aws-sdk-js-v3代码库中的凭证代码,似乎不需要“Credential”构造函数配置参数。我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-27 23:53:01

根据constructor的文档,这些参数是有效的。

仍然存在名为credentials的凭据对象的参数名称。如果您实例化了一个AWS.Credentials对象,则可以将其传递给该参数。

票数 3
EN

Stack Overflow用户

发布于 2020-12-18 10:49:15

为了澄清克里斯·威廉姆斯的回答和@Waleed93的第二个评论,过去使用AWS Javascript SDK v2的方法是:

代码语言:javascript
复制
import S3 from 'aws-sdk/clients/s3';

const AccessKeyId = xxxxx,
      SecretKey = yyyyyyyy,
      SessionToken = zzzzzzzzzz;

const s3Client = new S3({
    apiVersion: '2006-03-01',
    region: 'us-east-1',
    accessKeyId: AccessKeyId,
    secretAccessKey: SecretKey,
    sessionToken: SessionToken
});

对于SDK v3,构造函数不再接受单独的credential参数,而是接受"credentials“对象作为参数。有效的方法是:

代码语言:javascript
复制
const { S3 } = require('@aws-sdk/client-s3');

const AccessKeyId = xxxxx,
      SecretKey = yyyyyyyy,
      SessionToken = zzzzzzzzzz;

const creds = {
    accessKeyId: AccessKeyId,
    secretAccessKey: SecretKey,
    sessionToken: SessionToken
};

const s3Client = new S3({
    apiVersion: '2006-03-01',
    region: 'us-east-1',
    credentials: creds
});

在AWS SDK文档、类参考或SDK版本3的开发人员指南中找不到此更改。感谢Chris和@Waleed93解决了这一问题。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62612082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档