How to resolve AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: null) using java

匿名 (未验证) 提交于 2019-12-03 00:56:02

问题:

Stack trace

Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: null), S3 Extended Request ID: null     at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1182)     at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:770)     at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489)     at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:310)     at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3604)     at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3557)     at com.amazonaws.services.s3.AmazonS3Client.getS3AccountOwner(AmazonS3Client.java:689)     at com.amazonaws.services.s3.AmazonS3Client.getS3AccountOwner(AmazonS3Client.java:681)     at testKMSkeyUploadObject.main(testKMSkeyUploadObject.java:101) 

I am getting this exception when I am storing object in AmazonS3EncryptionClient object. Here is my code

ObjectMetadata objectMetadata = new ObjectMetadata(); objectMetadata.setContentLength(plaintext.length);                 objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);       AmazonS3EncryptionClient s3 = new AmazonS3EncryptionClient(credentials,materialProvider).withRegion(Region.getRegion(Regions.US_EAST_1));;      PutObjectRequest putRequest = new PutObjectRequest(                         bucket, keyId, new ByteArrayInputStream(plaintext), objectMetadata);     putRequest.setRequestCredentials(credentials);      s3.setEndpoint("https://kms.us-east-1.amazonaws.com"); 

回答1:

I have the same issue, but in my case the problem was with the proxy, Hhere is how you can set the proxy,

here is an example,

ClientConfiguration config = new ClientConfiguration(); config.setProtocol(Protocol.HTTPS); config.setProxyHost("YOUR_PROXY_IP"); config.setProxyPort(YOUR_PROXY_PORT);   BasicAWSCredentials creds = new BasicAWSCredentials("YOUR_KEY", "YOUR_SECRET");  AmazonS3 s3Client = AmazonS3ClientBuilder.standard()     .withClientConfiguration(config)     .withRegion(Regions.US_EAST_2)     .withCredentials(new AWSStaticCredentialsProvider(creds))                        .build(); 


回答2:

I resolved this exception by creating bucket in Amazon IAM Management Console and getting host for endpont.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!