小编Xen*_*lin的帖子

AWS从S3下载错误,"配置文件不能为空"

我已经看过,但没有答案可以解释我的问题.我首先使用了这里提供的示例(GetObject类),它立即在我的桌面上运行.但是,我的朋友无法让它在他的机器上工作,也不能在我们的EC2实例上工作.

有人提到有指定的凭证文件,这是有道理的,但我从来没有这样做,我很确定默认权限设置为允许访问此存储桶.

这是堆栈跟踪:

Exception in thread "main" java.lang.IllegalArgumentException: profile file cannot be null
    at com.amazonaws.util.ValidationUtils.assertNotNull(ValidationUtils.java:37)
    at com.amazonaws.auth.profile.ProfilesConfigFile.<init>(ProfilesConfigFile.java:142)
    at com.amazonaws.auth.profile.ProfilesConfigFile.<init>(ProfilesConfigFile.java:133)
    at com.amazonaws.auth.profile.ProfilesConfigFile.<init>(ProfilesConfigFile.java:100)
    at com.amazonaws.auth.profile.ProfileCredentialsProvider.getCredentials(ProfileCredentialsProvider.java:135)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.getCredentialsFromContext(AmazonHttpClient.java:1029)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1049)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:949)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:662)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:636)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:619)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$300(AmazonHttpClient.java:587)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:574)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:446)
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4035)
    at com.amazonaws.services.s3.AmazonS3Client.getBucketRegionViaHeadRequest(AmazonS3Client.java:4474)
    at com.amazonaws.services.s3.AmazonS3Client.fetchRegionFromCache(AmazonS3Client.java:4448)
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4020)
    at com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:1307)
    at GetObject.main(GetObject.java:26)
Run Code Online (Sandbox Code Playgroud)

我可以保证getNameRequest中的bucketName和key params都不为null.这里的差异是什么?为什么它只能在我的电脑上成功?这完全与我不得不补充aws-sdk jar应该已经拥有的许多罐子这一事实有关(jackson-databind,jackson-core,jackson-annotations,httpclient,httpcore,commons-logging和joda-时间)?看起来很相似,但是在其他方面无法解释的错误(给出非空的参数,aws-sdk中的某些东西说它是空的).

java amazon-s3 amazon-ec2 amazon-web-services

19
推荐指数
3
解决办法
1万
查看次数

标签 统计

amazon-ec2 ×1

amazon-s3 ×1

amazon-web-services ×1

java ×1