All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.s3.model.CompleteMultipartUploadRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon S3 module holds the client classes that are used for communicating with Amazon Simple Storage Service

The newest version!
/*
 * Copyright 2010-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.s3.model;
import java.io.Serializable;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import com.amazonaws.AmazonWebServiceRequest;
import com.amazonaws.services.s3.AmazonS3;

/**
 * Container for the parameters of the CompleteMultipartUpload operation.
 * 

* If you are performing a complete multipart upload for KMS-encrypted objects, you need to * specify the correct region of the bucket on your client and configure Amazon Web Services * Signature Version 4 for added security. For more information on how to do * this, see * http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify * -signature-version *

*

* Required Parameters: BucketName, Key, UploadId, PartETags * * @see AmazonS3#completeMultipartUpload(CompleteMultipartUploadRequest) */ public class CompleteMultipartUploadRequest extends AmazonWebServiceRequest implements Serializable, ExpectedBucketOwnerRequest, SSECustomerKeyProvider { /** * The name of the bucket containing the multipart upload to complete * *

* When using this API with an access point, you must direct requests * to the access point hostname. The access point hostname takes the form * AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. *

*

* When using this operation using an access point through the Amazon Web Services SDKs, you provide * the access point ARN in place of the bucket name. For more information about access point * ARNs, see * Using access points in the Amazon Simple Storage Service Developer Guide. *

*/ private String bucketName; /** The key of the multipart upload to complete */ private String key; /** The ID of the multipart upload to complete */ private String uploadId; /** The list of part numbers and ETags to use when completing the multipart upload */ private List partETags = new ArrayList(); /** * If enabled, the requester is charged for conducting this operation from * Requester Pays Buckets. */ private boolean isRequesterPays; private String expectedBucketOwner; private SSECustomerKey sseCustomerKey; private String ifNoneMatch; public CompleteMultipartUploadRequest() {} /** * Constructs a new request to complete a multipart upload. * * @param bucketName * The name of the bucket containing the multipart upload to * complete. * @param key * The key of the multipart upload to complete. * @param uploadId * The ID of the multipart upload to complete. * @param partETags * The list of part numbers and ETags to use when completing the * multipart upload. */ public CompleteMultipartUploadRequest(String bucketName, String key, String uploadId, List partETags) { this.bucketName = bucketName; this.key = key; this.uploadId = uploadId; this.partETags = partETags; } public String getExpectedBucketOwner() { return expectedBucketOwner; } public CompleteMultipartUploadRequest withExpectedBucketOwner(String expectedBucketOwner) { this.expectedBucketOwner = expectedBucketOwner; return this; } public void setExpectedBucketOwner(String expectedBucketOwner) { withExpectedBucketOwner(expectedBucketOwner); } /** * Returns the name of the bucket containing the multipart upload to * complete. * *

* When using this action with an access point, you must direct requests to the access point hostname. The access * point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. * When using this action with an access point through the Amazon Web Services SDKs, you provide the access point * ARN in place of the bucket name. For more information about access point ARNs, see Using access points in * the Amazon S3 User Guide. *

*

* When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The * S3 on Outposts hostname takes the form * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. * When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts * access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the * Amazon S3 User Guide. *

* * @return The name of the bucket containing the multipart upload to * complete. */ public String getBucketName() { return bucketName; } /** * Sets the name of the bucket containing the multipart upload to complete. * *

* When using this action with an access point, you must direct requests to the access point hostname. The access * point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. * When using this action with an access point through the Amazon Web Services SDKs, you provide the access point * ARN in place of the bucket name. For more information about access point ARNs, see Using access points in * the Amazon S3 User Guide. *

*

* When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The * S3 on Outposts hostname takes the form * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. * When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts * access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the * Amazon S3 User Guide. *

* * @param bucketName * The name of the bucket containing the multipart upload to * complete. */ public void setBucketName(String bucketName) { this.bucketName = bucketName; } /** * Sets the name of the bucket containing the multipart upload to complete, * and returns this updated CompleteMultipartUploadRequest so that * additional method calls can be chained together. * *

* When using this action with an access point, you must direct requests to the access point hostname. The access * point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. * When using this action with an access point through the Amazon Web Services SDKs, you provide the access point * ARN in place of the bucket name. For more information about access point ARNs, see Using access points in * the Amazon S3 User Guide. *

*

* When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The * S3 on Outposts hostname takes the form * AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. * When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts * access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts in the * Amazon S3 User Guide. *

* * @param bucketName * The name of the bucket containing the multipart upload to * complete. * * @return The updated CompleteMultipartUploadRequest. */ public CompleteMultipartUploadRequest withBucketName(String bucketName) { this.bucketName = bucketName; return this; } /** * Returns the key under which the multipart upload to complete is stored. * * @return The key under which the multipart upload to complete is stored. */ public String getKey() { return key; } /** * Sets the key under which the multipart upload to complete is stored. * * @param key * The key under which the multipart upload to complete is * stored. */ public void setKey(String key) { this.key = key; } /** * Sets the key under which the multipart upload to complete is stored, and * returns this updated CompleteMultipartUploadRequest object so that * additional method calls can be chained together. * * @param key * The key under which the multipart upload to complete is * stored. * * @return This updated CompleteMultipartUploadRequest object. */ public CompleteMultipartUploadRequest withKey(String key) { this.key = key; return this; } /** * Returns the ID of the multipart upload to complete. * * @return The ID of the multipart upload to complete. */ public String getUploadId() { return uploadId; } /** * Sets the ID of the multipart upload to complete. * * @param uploadId * The ID of the multipart upload to complete. */ public void setUploadId(String uploadId) { this.uploadId = uploadId; } /** * Sets the ID of the multipart upload to complete, and returns this updated * CompleteMultipartUploadRequest object so that additional method calls can * be chained together. * * @param uploadId * The ID of the multipart upload to complete. * * @return This updated CompleteMultipartUploadRequest object. */ public CompleteMultipartUploadRequest withUploadId(String uploadId) { this.uploadId = uploadId; return this; } /** * Returns the list of part numbers and ETags that identify the individual * parts of the multipart upload to complete. * * @return The list of part numbers and ETags that identify the individual * parts of the multipart upload to complete. */ public List getPartETags() { return partETags; } /** * Sets the list of part numbers and ETags that identify the individual * parts of the multipart upload to complete. * * @param partETags * The list of part numbers and ETags that identify the * individual parts of the multipart upload to complete. */ public void setPartETags(List partETags) { this.partETags = partETags; } /** * Sets the list of part numbers and ETags that identify the individual * parts of the multipart upload to complete, and returns this updated * CompleteMultipartUploadRequest object so that additional method calls can be chained. * * @param partETags * The list of part numbers and ETags that identify the * individual parts of the multipart upload to complete. * * @return This updated CompleteMultipartUploadRequest object. */ public CompleteMultipartUploadRequest withPartETags(List partETags) { setPartETags(partETags); return this; } /** * Sets the list of part numbers and ETags that identify the individual * parts of the multipart upload to complete based on the specified results * from part uploads. * * @param uploadPartResults * The list of results from the individual part uploads in the * multipart upload to complete. * * @return This updated CompleteMultipartUploadRequest object. */ public CompleteMultipartUploadRequest withPartETags(UploadPartResult... uploadPartResults) { for (UploadPartResult result : uploadPartResults) { this.partETags.add(new PartETag(result.getPartNumber(), result.getETag())); } return this; } /** * Sets the list of part numbers and ETags that identify the individual * parts of the multipart upload to complete based on the specified results * from part uploads. * * @param uploadPartResultsCollection * The list of results from the individual part uploads in the * multipart upload to complete. * * @return This updated CompleteMultipartUploadRequest object. */ public CompleteMultipartUploadRequest withPartETags(Collection uploadPartResultsCollection) { for (UploadPartResult result : uploadPartResultsCollection) { this.partETags.add(new PartETag(result.getPartNumber(), result.getETag())); } return this; } /** * Returns true if the user has enabled Requester Pays option when * conducting this operation from Requester Pays Bucket; else false. * *

* If a bucket is enabled for Requester Pays, then any attempt to upload or * download an object from it without Requester Pays enabled will result in * a 403 error and the bucket owner will be charged for the request. * *

* Enabling Requester Pays disables the ability to have anonymous access to * this bucket * * @return true if the user has enabled Requester Pays option for * conducting this operation from Requester Pays Bucket. */ public boolean isRequesterPays() { return isRequesterPays; } /** * Used for conducting this operation from a Requester Pays Bucket. If * set the requester is charged for requests from the bucket. * *

* If a bucket is enabled for Requester Pays, then any attempt to upload or * download an object from it without Requester Pays enabled will result in * a 403 error and the bucket owner will be charged for the request. * *

* Enabling Requester Pays disables the ability to have anonymous access to * this bucket. * * @param isRequesterPays * Enable Requester Pays option for the operation. */ public void setRequesterPays(boolean isRequesterPays) { this.isRequesterPays = isRequesterPays; } /** * Used for conducting this operation from a Requester Pays Bucket. If * set the requester is charged for requests from the bucket. It returns this * updated CompleteMultipartUploadRequest object so that additional method calls can be * chained together. * *

* If a bucket is enabled for Requester Pays, then any attempt to upload or * download an object from it without Requester Pays enabled will result in * a 403 error and the bucket owner will be charged for the request. * *

* Enabling Requester Pays disables the ability to have anonymous access to * this bucket. * * @param isRequesterPays * Enable Requester Pays option for the operation. * * @return The updated CompleteMultipartUploadRequest object. */ public CompleteMultipartUploadRequest withRequesterPays(boolean isRequesterPays) { setRequesterPays(isRequesterPays); return this; } @Override public SSECustomerKey getSSECustomerKey() { return sseCustomerKey; } /** * Sets the optional customer-provided server-side encryption key to use to * encrypt the uploaded object. * * @param sseKey * The optional customer-provided server-side encryption key to * use to encrypt the uploaded object. */ public void setSSECustomerKey(SSECustomerKey sseKey) { this.sseCustomerKey = sseKey; } /** * Sets the optional customer-provided server-side encryption key to use to * encrypt the uploaded object, and returns the updated request object so * that additional method calls can be chained together. * * @param sseKey * The optional customer-provided server-side encryption key to * use to encrypt the uploaded object. * * @return This updated request object so that additional method calls can * be chained together. */ public CompleteMultipartUploadRequest withSSECustomerKey(SSECustomerKey sseKey) { setSSECustomerKey(sseKey); return this; } /** * * Returns the value for the header If-None-Match. */ public String getIfNoneMatch() { return this.ifNoneMatch; } /** *

* Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, * S3 returns a {@code 412 Precondition Failed} error. *

*

* If a conflicting operation occurs during the upload S3 returns a {@code 409 ConditionalRequestConflict} * response. On a 409 failure you should re-initiate the multipart upload with CreateMultipartUpload * and re-upload each part. *

*

* Expects the '*' (asterisk) character. *

*

* For more information about conditional requests, see * RFC 7232, or * Conditional requests * in the Amazon S3 User Guide. *

* @param eTag */ public void setIfNoneMatch(String eTag) { this.ifNoneMatch = eTag; } /** *

* Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, * S3 returns a {@code 412 Precondition Failed} error. *

*

* If a conflicting operation occurs during the upload S3 returns a {@code 409 ConditionalRequestConflict} * response. On a 409 failure you should re-initiate the multipart upload with CreateMultipartUpload * and re-upload each part. *

*

* Expects the '*' (asterisk) character. *

*

* For more information about conditional requests, see * RFC 7232, or * Conditional requests * in the Amazon S3 User Guide. *

* @param eTag */ public CompleteMultipartUploadRequest ifNoneMatch(String eTag) { setIfNoneMatch(eTag); return this; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy