Example usage for com.amazonaws.services.s3.transfer.model UploadResult getETag

List of usage examples for com.amazonaws.services.s3.transfer.model UploadResult getETag

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.transfer.model UploadResult getETag.

Prototype

public String getETag() 

Source Link

Document

Returns the entity tag identifying the new object.

Usage

From source file:com.proofpoint.event.collector.combiner.S3StorageSystem.java

License:Apache License

@Override
public StoredObject putObject(final URI location, File source) {
    try {/*from   w ww  . jav  a  2  s.c  om*/
        log.info("starting upload: %s", location);
        final AtomicLong totalTransferred = new AtomicLong();
        Upload upload = s3TransferManager.upload(getS3Bucket(location), getS3ObjectKey(location), source);
        upload.addProgressListener(new ProgressListener() {
            @Override
            public void progressChanged(ProgressEvent progressEvent) {
                // NOTE: This may be invoked by multiple threads.
                long transferred = totalTransferred.addAndGet(progressEvent.getBytesTransferred());
                log.debug("upload progress: %s: transferred=%d code=%d", location, transferred,
                        progressEvent.getEventCode());
            }
        });
        UploadResult uploadResult = upload.waitForUploadResult();
        ObjectMetadata metadata = s3Service.getObjectMetadata(getS3Bucket(location), getS3ObjectKey(location));
        if (!uploadResult.getETag().equals(metadata.getETag())) {
            // this might happen in rare cases due to S3's eventual consistency
            throw new IllegalStateException("uploaded etag is different from retrieved object etag");
        }
        log.info("completed upload: %s (size=%d bytes)", location, totalTransferred.get());
        return updateStoredObject(location, metadata);
    } catch (Exception e) {
        throw Throwables.propagate(e);
    }
}

From source file:jetbrains.buildServer.runner.codedeploy.AWSClient.java

License:Apache License

private void doUploadRevision(@NotNull final File revision, @NotNull final String s3BucketName,
        @NotNull final String s3ObjectKey) throws Throwable {
    myListener.uploadRevisionStarted(revision, s3BucketName, s3ObjectKey);

    final UploadResult uploadResult = doUploadWithTransferManager(revision, s3BucketName, s3ObjectKey);

    myListener.uploadRevisionFinished(revision, s3BucketName, s3ObjectKey, uploadResult.getVersionId(),
            uploadResult.getETag(), myS3Client.getUrl(s3BucketName, s3ObjectKey).toString());
}