Java SDK を使用して s3 にファイルをアップロードしようとしています。このコードは、jdk1.6.0_26 を実行している Windows 7 マシンでは正常に動作しますが、Java(TM) SE ランタイム環境 (ビルド 1.7.0-b147) を搭載したサーバー、Ubuntu Server 10.04 で実行すると、次のエラーが表示されます。https://github.com/amazonwebservices/aws-sdk-for-java/blob/master/src/main/java/com/amazonaws/auth/AbstractAWSSigner.javaから:
com.amazonaws.AmazonClientException: Unable to calculate a request signature: null Stack trace : com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:71)
com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:55)
com.amazonaws.services.s3.internal.S3Signer.sign(S3Signer.java:101)
com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:234)
com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:169)
com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2597)
com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1025)
s3 への呼び出し:
AWSCredentials c = new BasicAWSCredentials(accessKey, secretKey);
AmazonS3Client client = new AmazonS3Client(c);
String key = station + "/" + file.getName();
client.putObject(new PutObjectRequest(bucket, key, file));
私は Java が初めてで、さらにトラブルシューティングする方法がわかりません。