Example usage for com.amazonaws.services.s3.model UploadPartRequest isLastPart

List of usage examples for com.amazonaws.services.s3.model UploadPartRequest isLastPart

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.model UploadPartRequest isLastPart.

Prototype

boolean isLastPart

To view the source code for com.amazonaws.services.s3.model UploadPartRequest isLastPart.

Click Source Link

Document

Allows the caller to indicate if this is the last part being uploaded in a multipart upload.

Usage

From source file:alluxio.underfs.s3a.S3ALowLevelOutputStream.java

License:Apache License

/**
 * Executes the upload part request.//  w  w w. j av a 2  s .c  o m
 *
 * @param request the upload part request
 */
private void execUpload(UploadPartRequest request) {
    File file = request.getFile();
    ListenableFuture<PartETag> futureTag = mExecutor.submit((Callable) () -> {
        PartETag partETag;
        AmazonClientException lastException;
        try {
            do {
                try {
                    partETag = mClient.uploadPart(request).getPartETag();
                    return partETag;
                } catch (AmazonClientException e) {
                    lastException = e;
                }
            } while (mRetryPolicy.attempt());
        } finally {
            // Delete the uploaded or failed to upload file
            if (!file.delete()) {
                LOG.error("Failed to delete temporary file @ {}", file.getPath());
            }
        }
        throw new IOException("Fail to upload part " + request.getPartNumber() + " to " + request.getKey(),
                lastException);
    });
    mTagFutures.add(futureTag);
    LOG.debug("Submit upload part request. key={}, partNum={}, file={}, fileSize={}, lastPart={}.", mKey,
            request.getPartNumber(), file.getPath(), file.length(), request.isLastPart());
}