私はすでにthisを見ましたが、私の問題を説明する答えはありませんでした。最初に提供されたhere(GetObjectクラス)のサンプルを使用し、すぐに私のデスクトップ上で動作しました。しかし、私の友人は自分のマシンで動作させることができなかったし、EC2のインスタンスでも動作しなかった。S3からオブジェクトをダウンロード中にAWSエラーが発生しました。「プロファイルファイルはnullにはできません」
資格情報ファイルを指定する必要がありますが、それは意味がありますが、これを行う必要はなく、デフォルトの権限がこのバケットにアクセスできるように設定されていることは間違いありません。
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)
私はbucketNameもGetObjectRequestでキーのparamsどちらがnullであることを保証することができます
はここでスタックトレースです。ここでの矛盾は何ですか?なぜ私のPCだけで成功するのだろうか?これは、aws-sdk jarがすでに持っていたはずのjarを補完しなければならないという事実に関連していますか?(jackson-databind、jackson-core、jackson-annotations、httpclient、httpcore、commons-logging、時間)?似ているように見えますが、それ以外の不可解なエラー(null以外のパラメータを与えると、aws-sdkの中には何かがあると言われます)があります。
あなたがこれを見たかどうかわからない:http://stackoverflow.com/a/41670728/3770040 –
私はあなたのリンクとそれからリンクされた "AWS資格情報を扱う"ページを探しているが、決して私のEclipseプロジェクトのためにこれらを設定し、私は信任状ファイルを持っていません。私はちょうどすぐに例を実行して、それは正常に動作します。私はまだ神秘的です。 – Xenalin
[OK]を、私は問題を識別したと思う:私は資格がプロジェクトフォルダに格納されていると思っていたが、私は〜/ .aws /信任状ファイルを完全に忘れていた黒い白。私はちょうど私のEC2インスタンス上で実行されている私の瓶のためにこれを設定する方法を知る必要があります。 – Xenalin