public class UploadObjectObserver extends Object
This observer is designed for extension so that custom behavior can be
provided. A customer observer can be configured via
UploadObjectRequest.withUploadObjectObserver(UploadObjectObserver)
.
UploadObjectRequest
Constructor and Description |
---|
UploadObjectObserver() |
Modifier and Type | Method and Description |
---|---|
List<Future<UploadPartResult>> |
getFutures() |
UploadObjectObserver |
init(UploadObjectRequest req,
S3DirectSpi s3direct,
AmazonS3 s3,
ExecutorService es)
Used to initialized this observer.
|
void |
onAbort()
Notified from
AmazonS3EncryptionClient.uploadObject(UploadObjectRequest) when
failed to upload any part. |
CompleteMultipartUploadResult |
onCompletion(List<PartETag> partETags)
Notified from
AmazonS3EncryptionClient.uploadObject(UploadObjectRequest) when
all parts have been successfully uploaded to S3. |
void |
onPartCreate(PartCreationEvent event)
Notified from
MultiFileOutputStream.fos() when a part ready for
upload has been successfully created on disk. |
String |
onUploadInitiation(UploadObjectRequest req)
Notified from
AmazonS3EncryptionClient.uploadObject(UploadObjectRequest) to
initiate a multi-part upload. |
public UploadObjectObserver init(UploadObjectRequest req, S3DirectSpi s3direct, AmazonS3 s3, ExecutorService es)
AmazonS3EncryptionClient
.
Implementation of this method should never block.
req
- the upload object requests3direct
- used to perform non-encrypting s3 operation via the current
instance of s3 (encryption) clients3
- the current instance of s3 (encryption) clientes
- the executor service to be used for concurrent uploadspublic String onUploadInitiation(UploadObjectRequest req)
AmazonS3EncryptionClient.uploadObject(UploadObjectRequest)
to
initiate a multi-part upload.req
- the upload object requestpublic void onPartCreate(PartCreationEvent event)
MultiFileOutputStream.fos()
when a part ready for
upload has been successfully created on disk. By default, this method
performs the following:
newUploadPartRequest(PartCreationEvent, File)
to
create an upload-part request for the newly created ciphertext fileappendUserAgent(AmazonWebServiceRequest, String)
to
append the necessary user agent string to the requestuploadPart(UploadPartRequest)
, to be performedTo enable parallel uploads, implementation of this method should never block.
event
- to represent the completion of a ciphertext file creation
which is ready for multipart upload to S3.public CompleteMultipartUploadResult onCompletion(List<PartETag> partETags)
AmazonS3EncryptionClient.uploadObject(UploadObjectRequest)
when
all parts have been successfully uploaded to S3. This method is
responsible for finishing off the upload by making a complete multi-part
upload request to S3 with the given list of etags.partETags
- all the etags returned from S3 for the previous part uploads.public void onAbort()
AmazonS3EncryptionClient.uploadObject(UploadObjectRequest)
when
failed to upload any part. This method is responsible for cancelling
ongoing uploads and aborting the multi-part upload request.public List<Future<UploadPartResult>> getFutures()