I have created a java client to upload files to S3 buckets using the AWS SDK. It works perfectly fine.
Now I am trying to do the same thing with Nginx in the middle. As in all the request from my client will pass through NGINX.
I new to Nginx so somehow compiled this nginx.conf
events {}
http {
server {
listen 9091;
location / {
proxy_pass http://bucket-name.s3.ap-south-1.amazonaws.com/;
}
}
}
This config gives the below exception:
Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: The request signature we calculated does not match the signature you provided. Check your key and signing method. (Service: Amazon S3; Status Code: 403; Error Code: SignatureDoesNotMatch; Request ID: 7BB1301CCDE06B05; S3 Extended Request ID: qAVh3RMieyqgwOrzNeiMAVQyb9V59J0rThHYqnfzUibZxqDIzzMUPI8SdWLCa9tL15YyekI2ukQ=), S3 Extended Request ID: qAVh3RMieyqgwOrzNeiMAVQyb9V59J0rThHYqnfzUibZxqDIzzMUPI8SdWLCa9tL15YyekI2ukQ=
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1799)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1383)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1359)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1139)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:796)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:764)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:738)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:698)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:680)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:544)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:524)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5052)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4998)
at com.amazonaws.services.s3.AmazonS3Client.initiateMultipartUpload(AmazonS3Client.java:3574)... 19 more
I tried to tweak the configs but couldn't succeed.