com.atlassian.aws.s3
Class BambooAmazonS3Client

java.lang.Object
  extended by com.amazonaws.AmazonWebServiceClient
      extended by com.amazonaws.services.s3.AmazonS3Client
          extended by com.atlassian.aws.s3.BambooAmazonS3Client
All Implemented Interfaces:
com.amazonaws.services.s3.AmazonS3, com.amazonaws.services.s3.internal.S3DirectSpi

public class BambooAmazonS3Client
extends com.amazonaws.services.s3.AmazonS3Client

The method com.amazonaws.services.s3.internal.ServiceUtils#retryableDownloadS3ObjectToFile(java.io.File, com.amazonaws.services.s3.internal.ServiceUtils.RetryableS3DownloadTask), used by AmazonS3Client.getObject(com.amazonaws.services.s3.model.GetObjectRequest, java.io.File) does not retry on SocketExceptions and SSLProtocol exception. Which sucks. This class subclassesAmazonS3Client and provides an additional method getObjectWithRetries(com.amazonaws.services.s3.model.GetObjectRequest, java.io.File) that retries the download according to the retry definition from org.apache.http.client.HttpClient configuration.


Field Summary
 
Fields inherited from class com.amazonaws.services.s3.AmazonS3Client
S3_SERVICE_NAME
 
Fields inherited from class com.amazonaws.AmazonWebServiceClient
client, clientConfiguration, endpoint, LOGGING_AWS_REQUEST_METRIC, requestHandler2s, timeOffset
 
Constructor Summary
BambooAmazonS3Client(com.amazonaws.auth.AWSCredentials awsCredentials, com.amazonaws.ClientConfiguration clientConfiguration)
           
 
Method Summary
 com.amazonaws.services.s3.model.ObjectMetadata getObjectWithRetries(com.amazonaws.services.s3.model.GetObjectRequest getObjectRequest, File destinationFile)
           
 
Methods inherited from class com.amazonaws.services.s3.AmazonS3Client
abortMultipartUpload, changeObjectStorageClass, completeMultipartUpload, copyObject, copyObject, copyPart, createBucket, createBucket, createBucket, createBucket, createExecutionContext, createRequest, createSigner, deleteBucket, deleteBucket, deleteBucketCrossOriginConfiguration, deleteBucketCrossOriginConfiguration, deleteBucketLifecycleConfiguration, deleteBucketLifecycleConfiguration, deleteBucketPolicy, deleteBucketPolicy, deleteBucketTaggingConfiguration, deleteBucketTaggingConfiguration, deleteBucketWebsiteConfiguration, deleteBucketWebsiteConfiguration, deleteObject, deleteObject, deleteObjects, deleteVersion, deleteVersion, disableRequesterPays, doesBucketExist, enableRequesterPays, generatePresignedUrl, generatePresignedUrl, generatePresignedUrl, getBucketAcl, getBucketAcl, getBucketCrossOriginConfiguration, getBucketLifecycleConfiguration, getBucketLocation, getBucketLocation, getBucketLoggingConfiguration, getBucketNotificationConfiguration, getBucketPolicy, getBucketPolicy, getBucketTaggingConfiguration, getBucketVersioningConfiguration, getBucketWebsiteConfiguration, getBucketWebsiteConfiguration, getCachedResponseMetadata, getObject, getObject, getObject, getObjectAcl, getObjectAcl, getObjectMetadata, getObjectMetadata, getRegion, getResourceUrl, getS3AccountOwner, getUrl, initiateMultipartUpload, isRequesterPaysEnabled, listBuckets, listBuckets, listMultipartUploads, listNextBatchOfObjects, listNextBatchOfVersions, listObjects, listObjects, listObjects, listParts, listVersions, listVersions, listVersions, newInitiateMultipartUploadRequest, populateRequestMetadata, presignRequest, putObject, putObject, putObject, restoreObject, restoreObject, setBucketAcl, setBucketAcl, setBucketAcl, setBucketAcl, setBucketAcl, setBucketCrossOriginConfiguration, setBucketCrossOriginConfiguration, setBucketLifecycleConfiguration, setBucketLifecycleConfiguration, setBucketLoggingConfiguration, setBucketNotificationConfiguration, setBucketNotificationConfiguration, setBucketPolicy, setBucketPolicy, setBucketTaggingConfiguration, setBucketTaggingConfiguration, setBucketVersioningConfiguration, setBucketWebsiteConfiguration, setBucketWebsiteConfiguration, setEndpoint, setObjectAcl, setObjectAcl, setObjectAcl, setObjectAcl, setObjectAcl, setObjectAcl, setObjectRedirectLocation, setRegion, setS3ClientOptions, uploadPart
 
Methods inherited from class com.amazonaws.AmazonWebServiceClient
addRequestHandler, addRequestHandler, configSigner, configSigner, convertToHttpRequest, createExecutionContext, createExecutionContext, endClientExecution, endClientExecution, findRequestMetricCollector, getRequestMetricsCollector, getServiceAbbreviation, getServiceName, getServiceNameIntern, getSigner, getSignerByURI, getSignerRegionOverride, getTimeOffset, isProfilingEnabled, isRequestMetricsEnabled, removeRequestHandler, removeRequestHandler, requestMetricCollector, setConfiguration, setEndpoint, setRegion, setServiceNameIntern, setSignerRegionOverride, setTimeOffset, shutdown, withEndpoint, withRegion, withRegion, withTimeOffset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BambooAmazonS3Client

public BambooAmazonS3Client(com.amazonaws.auth.AWSCredentials awsCredentials,
                            com.amazonaws.ClientConfiguration clientConfiguration)
Method Detail

getObjectWithRetries

@Nullable
public com.amazonaws.services.s3.model.ObjectMetadata getObjectWithRetries(com.amazonaws.services.s3.model.GetObjectRequest getObjectRequest,
                                                                                    File destinationFile)
                                                                    throws com.amazonaws.AmazonClientException,
                                                                           com.amazonaws.AmazonServiceException
Throws:
com.amazonaws.AmazonClientException
com.amazonaws.AmazonServiceException


Copyright © 2015 Atlassian. All rights reserved.