[英]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.