簡體   English   中英

AWS Java SDK憑證

[英]AWS Java SDK credentials

我正在使用AWS Java SDK並嘗試運行一些測試; 得到:

無法從類路徑上的/AwsCredentials.properties文件加載AWS憑證

憑證文件@〜/ .aws /根據AWS規范是正確的; 777'以確保沒有訪問問題。

我沒有使用任何IDE插件; 每個AWS文檔中,具有憑據文件@〜/ .aws /就足夠了。 有人只安裝了SDK嗎? 如果我將文件路徑硬編碼到ClasspathPropertiesFileCredentialsProvider()請求中,則會使用路徑而不是在任何地方都不存在的AwsCredentials.properties字符串將錯誤吐回該路徑(是的,嘗試在〜/ .aws /以及)。

非常感謝您的任何見解,以下代碼直接來自亞馬遜:

import com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.sns.AmazonSNSClient;
import com.amazonaws.services.sns.model.PublishRequest;
import com.amazonaws.services.sns.model.PublishResult;

public class SNS {

    public static void main(String[] args) {
        AmazonSNSClient snsClient = new AmazonSNSClient(new ClasspathPropertiesFileCredentialsProvider());
        snsClient.setRegion(Region.getRegion(Regions.US_EAST_1));

        String msg = "this is a test";
        PublishRequest publishRequest = new PublishRequest("my arn", msg);
        PublishResult publishResult = snsClient.publish(publishRequest);
        System.out.println("MessageId - " + publishResult.getMessageId());
    }
}

如果您使用DefaultAWSCredentialsProviderChain而不是ClasspathPropertiesFileCredentialsProvider ,它將自動檢查各種默認位置的AWS憑證。 文件

您是否已驗證是否為運行的進程設置了$ HOME環境變量? AWS開發工具包依靠$ HOME來確定.aws文件夾的正確位置。

嗯,這不符合我的計划。 無法將.aws路徑作為類路徑(試圖添加為外部類文件夾)。

運行以下內容以找到我項目中的實際類路徑:

    public static void main (String args[]) {

        ClassLoader cl = ClassLoader.getSystemClassLoader();

        URL[] urls = ((URLClassLoader)cl).getURLs();

        for(URL url: urls){
            System.out.println(url.getFile());
        }

   }

然后將我的AWS憑證放到上面一個目錄中的新AwsCredentials.properties文件中(我有一個;其余的是jar文件)。

將文件中的標記值從原來的值(aws_access_key,aws_secret_access_key)更改為“ accessKey”和“ secretKey”,並且可以正常工作。

感謝大家的投入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM