@Override public boolean test(AmazonS3Exception exception) { if (exception == null || exception.getErrorCode() == null || exception.getErrorMessage() == null) { return false; } return exception.getErrorCode().contains(ERROR_CODE) && exception.getErrorMessage().contains(RETYABLE_ERROR_MESSAGE); } }
private Bucket createBucket(String bucket_name) { final AmazonS3 s3 = s3Client(); Bucket b = null; if (s3.doesBucketExistV2(bucket_name)) { System.out.format("Bucket %s already exists.\n", bucket_name); b = getBucket(bucket_name); } else { try { b = s3.createBucket(bucket_name); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); } } return b; }
private Bucket createBucket(String bucket_name) { final AmazonS3 s3 = s3Client(); Bucket b = null; if (s3.doesBucketExistV2(bucket_name)) { System.out.format("Bucket %s already exists.\n", bucket_name); b = getBucket(bucket_name); } else { try { b = s3.createBucket(bucket_name); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); } } return b; }
public static Bucket createBucket(String bucket_name) { final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient(); Bucket b = null; if (s3.doesBucketExist(bucket_name)) { System.out.format("Bucket %s already exists.\n", bucket_name); b = getBucket(bucket_name); } else { try { b = s3.createBucket(bucket_name); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); } } return b; }
@Override public String getMessage() { return getErrorMessage() + " (Service: " + getServiceName() + "; Status Code: " + getStatusCode() + "; Error Code: " + getErrorCode() + "; Request ID: " + getRequestId() + "; S3 Extended Request ID: " + getExtendedRequestId() + ")"; }
s3.createBucket(new CreateBucketRequest(bucket_name, region)); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); s3.deleteBucket(bucket_name); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage());
boolean test(AmazonS3Exception exception) { if (exception == null || exception.getErrorCode() == null || exception.getErrorMessage() == null) { return false; } return exception.getErrorCode().contains(ERROR_CODE) && exception.getErrorMessage().contains(RETYABLE_ERROR_MESSAGE); } }
LOG.warn("{} Couldn't upload {} due to {} - {}", logIdentifier, file, se.getErrorCode(), se.getErrorMessage(), se); throw se; } catch (Exception e) {
boolean test(AmazonS3Exception exception) { if (exception == null || exception.getErrorCode() == null || exception.getErrorMessage() == null) { return false; } return exception.getErrorCode().contains(ERROR_CODE) && exception.getErrorMessage().contains(RETYABLE_ERROR_MESSAGE); } }
@Override public boolean test(AmazonS3Exception exception) { if (exception == null || exception.getErrorCode() == null || exception.getErrorMessage() == null) { return false; } return exception.getErrorCode().contains(ERROR_CODE) && exception.getErrorMessage().contains(RETYABLE_ERROR_MESSAGE); } }
@Test public void testHandleErrorResponse() throws IOException { String response = "<Error>" + "<Message>testError</Message>" + "<Code>testCode</Code>" + "<RequestId>testId</RequestId>" + "<HostId>testHost</HostId>" + "</Error>"; ByteArrayInputStream content = new ByteArrayInputStream(response.getBytes(StringUtils.UTF8)); HttpResponse errorResponse = new HttpResponse.Builder() .statusCode(200) .content(content) .statusText("testError").build(); S3ErrorResponseHandler handler = new S3ErrorResponseHandler(); AmazonS3Exception ase = (AmazonS3Exception) handler.handle(errorResponse); assertEquals(ase.getErrorMessage(), "testError"); assertEquals(ase.getErrorType(), ErrorType.Client); assertEquals(ase.getRequestId(), "testId"); assertEquals(ase.getExtendedRequestId(), "testHost"); assertEquals(ase.getStatusCode(), 200); assertEquals(ase.getErrorCode(), "testCode"); }
@Test public void testHandleErrorResponseWithNoBody() throws IOException { HttpResponse errorResponse = new HttpResponse.Builder() .statusCode(500) .content(null) .statusText("testError") .header(Headers.REQUEST_ID, "testId") .header(Headers.EXTENDED_REQUEST_ID, "extendedId").build(); S3ErrorResponseHandler handler = new S3ErrorResponseHandler(); AmazonS3Exception ase = (AmazonS3Exception) handler.handle(errorResponse); assertEquals(ase.getErrorMessage(), "testError"); assertEquals(ase.getErrorType(), ErrorType.Service); assertEquals(ase.getRequestId(), "testId"); assertEquals(ase.getExtendedRequestId(), "extendedId"); assertEquals(ase.getStatusCode(), 500); }
class CloudFrontRetryCondition implements RetryCondition { @Override public boolean shouldRetry(AmazonWebServiceRequest originalRequest, AmazonClientException exception, int retriesAttempted) { if(exception instanceof AmazonS3Exception) { final AmazonS3Exception s3Exception = (AmazonS3Exception) exception; return s3Exception.getStatusCode() == 400 && s3Exception.getErrorCode().equals("MalformedPolicy") && s3Exception.getErrorMessage().equals("Invalid principal in policy") && s3Exception.getAdditionalDetails().get("Detail").contains("arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity"); } else { return false; } } }
@Override public String getMessage() { return getErrorMessage() + " (Service: " + getServiceName() + "; Status Code: " + getStatusCode() + "; Error Code: " + getErrorCode() + "; Request ID: " + getRequestId() + "; S3 Extended Request ID: " + getExtendedRequestId() + ")"; }