Я пытаюсь загрузить файл на s3 с помощью Java SDK. Код отлично работает на моей машине под управлением Windows 7 с jdk1.6.0_26, но при запуске на сервере Ubuntu Server 10.04 с Java Runtime Environment (см. 1.7.0-b147) появляется следующая ошибка, которая появляется исходя из https://github.com/amazonwebservices/aws-sdk-for-java/blob/master/src/main/java/com/amazonaws/auth/AbstractAWSSigner.java:Исключение с использованием Amazon s3 Java SDK
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 и не знаю, как дальше устранить.
Имея хороший ответ на этот вопрос будет очень полезно для этого гостя из будущего. Учитывая распространенность AWS (тогда и сейчас), возможно, сообщество должно переоценить необычайно узкую интерпретацию применимости этого вопроса для мировой аудитории Интернета. ;-) – Threadid