无法从类路径上的/AwsCredentials.properties文件加载AWS凭据

Cre*_*Xor 23 java amazon-ec2 amazon-web-services

使用此代码设置类路径

AWSCredentialsProvider credentialsProvider = new ClasspathPropertiesFileCredentialsProvider();
ec2 = new AmazonEC2Client(credentialsProvider);
Run Code Online (Sandbox Code Playgroud)

以下是AwsCredentials.properties文件的格式

# Fill in your AWS Access Key ID and Secret Access Key
# http://aws.amazon.com/security-credentials
accessKey = keyHere
secretKey = secretKeyHere
Run Code Online (Sandbox Code Playgroud)

以下是我得到的例外情况

Exception in thread "main" com.amazonaws.AmazonClientException: Unable to load AWS credentials from the /AwsCredentials.properties file on the classpath

    at com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider.getCredentials(ClasspathPropertiesFileCredentialsProvider.java:81)
    at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.java:8359)
Run Code Online (Sandbox Code Playgroud)

小智 26

我使用不同的方法建立了连接:

BasicAWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
AmazonDynamoDBClient client = new AmazonDynamoDBClient(credentials).withRegion(Regions.US_EAST_1);
DynamoDB dynamoDB = new DynamoDB(client);
Run Code Online (Sandbox Code Playgroud)

可以在Identity and Access Management控制台中创建访问密钥和密钥.我希望它有所帮助......


Raj*_*ani 13

您可以使用DefaultAwsCredentialsProviderChain()

根据文档!http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html

AWS凭证提供程序链,按此顺序查找凭据:

  1. 环境变量 - AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY(推荐,因为它们是由所有AWS SDK和除了.NET CLI识别),或AWS_ACCESS_KEY和AWS_SECRET_KEY(仅Java SDK中识别)
  2. Java系统属性 - aws.accessKeyId和aws.secretKey
  3. 凭据配置文件位于所有AWS开发工具包和AWS CLI共享的默认位置(〜/ .aws/credentials)
  4. 通过Amazon EC2元数据服务提供的实例配置文件凭据


And*_*s B 10

AWSCredentialsProvider credentialsProvider = new ProfileCredentialsProvider();
new AmazonEC2Client(credentialsProvider)
Run Code Online (Sandbox Code Playgroud)

.aws /凭证

[default]
aws_access_key_id =
aws_secret_access_key = 
Run Code Online (Sandbox Code Playgroud)


far*_*don 5

您收到此异常是因为您的AWS开发工具包无法加载您的凭据.您应该做的是转到首选项然后转到AWS并添加您的密钥和访问密钥.这样您的项目就可以检索这两个键.

  • 我找不到"首选项"和"AWS"来添加密钥.你能帮助我吗? (43认同)
  • @iForests https://console.aws.amazon.com/iam/home?region=us-east-2#/security_credential (2认同)
  • 仅当您有权访问IAM时,此方法才有效。问题在于,由于公司出于安全原因锁定了IAM,大多数在AWS上工作的人没有访问权限。 (2认同)

Sim*_*mon 5

试试这个文件格式:

[default]
aws_access_key_id=<your access key>
aws_secret_access_key=<your secret access key>
Run Code Online (Sandbox Code Playgroud)

我使用 ProfileCredentialsProvider() 将此文件保存为 ~/.aws/credentials。

  • @Arslan,将此文件放在 `&lt;local_drive&gt;/.aws/` 文件夹中。就像我的文件位于`C:\Users\Abhishek\.aws` 位置。完整路径“C:\Users\Abhishek\.aws\credentials”。此外,当我在 eclipse 中安装 AWS 插件时,它给了我一个弹出窗口来填充 **Access Key** 和 **Secret Access Key** 并在 `C:\Users\Abhishek\ 自动创建 **credentials** 文件.aws\credentials` 位置 (3认同)