List of usage examples for com.amazonaws.services.s3.transfer.model UploadResult getETag
public String getETag()
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()); }