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

com.qcloud.cos.model.InitiateMultipartUploadRequest Maven / Gradle / Ivy

/*
 * Copyright 2010-2019 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.
 
 * According to cos feature, we modify some class,comment, field name, etc.
 */


package com.qcloud.cos.model;

import java.io.Serializable;

import com.qcloud.cos.internal.CosServiceRequest;

public class InitiateMultipartUploadRequest extends CosServiceRequest
        implements SSECustomerKeyProvider, SSECOSKeyManagementParamsProvider, Serializable {
    /**
     * The name of the bucket in which to create the new multipart upload, and hence, the eventual
     * object created from the multipart upload.
     */
    private String bucketName;

    /**
     * The key by which to store the new multipart upload, and hence, the eventual object created
     * from the multipart upload.
     */
    private String key;

    /**
     * Size of the data upload to cos. Only used when it is an encryption client.
     */
    private long dataSize = -1;

    /**
     * Size of a part in the multipart uplaod. Only used when it is an encryption client.
     */
    private long partSize = -1;

    /**
     * Additional information about the new object being created, such as content type, content
     * encoding, user metadata, etc.
     */
    public ObjectMetadata objectMetadata;

    /**
     * An optional canned Access Control List (ACL) to set permissions for the new object created
     * when the multipart upload is completed.
     */
    private CannedAccessControlList cannedACL;

    /**
     * An optional access control list to apply to the new upload. If specified, cannedAcl will be
     * ignored.
     */
    private AccessControlList accessControlList;

    /**
     * The optional storage class to use when storing this upload's data in COS. If not specified,
     * the default storage class is used.
     */
    private StorageClass storageClass;

    /**
     * The optional redirect location for the new object.
     */
    private String redirectLocation;

    /**
     * The optional customer-provided server-side encryption key to use to encrypt the upload being
     * started.
     */
    private SSECustomerKey sseCustomerKey;

    /**
     * The optional COS Key Management system parameters to be used to encrypt the the object on the
     * server side.
     */
    private SSECOSKeyManagementParams sseCOSKeyManagementParams;

    /**
     * Constructs a request to initiate a new multipart upload in the specified bucket, stored by
     * the specified key.
     *
     * @param bucketName The name of the bucket in which to create the new multipart upload, and
     *        hence, the eventual object created from the multipart upload.
     * @param key The key by which to store the new multipart upload, and hence, the eventual object
     *        created from the multipart upload.
     */
    public InitiateMultipartUploadRequest(String bucketName, String key) {
        this.bucketName = bucketName;
        this.key = key;
    }

    /**
     * Constructs a request to initiate a new multipart upload in the specified bucket, stored by
     * the specified key, and with the additional specified data size and part size.
     *
     * @param bucketName The name of the bucket in which to create the new multipart upload, and
     *        hence, the eventual object created from the multipart upload.
     * @param key The key by which to store the new multipart upload, and hence, the eventual object
     *        created from the multipart upload.
     * @param dataSize Size of the data upload to cos. When use encryption client, it is necessary.
     * @param partSize Size of a part in the multipart uplaod. When use encryption client, it is necessary.
     */
    public InitiateMultipartUploadRequest(String bucketName, String key, long dataSize, long partSize) {
        this.bucketName = bucketName;
        this.key = key;
        this.dataSize = dataSize;
        this.partSize = partSize;
    }

    /**
     * Constructs a request to initiate a new multipart upload in the specified bucket, stored by
     * the specified key, and with the additional specified object metadata.
     *
     * @param bucketName The name of the bucket in which to create the new multipart upload, and
     *        hence, the eventual object created from the multipart upload.
     * @param key The key by which to store the new multipart upload, and hence, the eventual object
     *        created from the multipart upload.
     * @param objectMetadata Additional information about the new object being created, such as
     *        content type, content encoding, user metadata, etc.
     */
    public InitiateMultipartUploadRequest(String bucketName, String key,
            ObjectMetadata objectMetadata) {
        this.bucketName = bucketName;
        this.key = key;
        this.objectMetadata = objectMetadata;
    }


    /**
     * Returns the name of the bucket in which to create the new multipart upload, and hence, the
     * eventual object created from the multipart upload.
     *
     * @return The name of the bucket in which to create the new multipart upload, and hence, the
     *         eventual object created from the multipart upload.
     */
    public String getBucketName() {
        return bucketName;
    }

    /**
     * Sets the name of the bucket in which to create the new multipart upload, and hence, the
     * eventual object created from the multipart upload.
     *
     * @param bucketName The name of the bucket in which to create the new multipart upload, and
     *        hence, the eventual object created from the multipart upload.
     */
    public void setBucketName(String bucketName) {
        this.bucketName = bucketName;
    }

    /**
     * Sets the name of the bucket in which to create the new multipart upload, and hence, the
     * eventual object created from the multipart upload.
     * 

* Returns this updated InitiateMultipartUploadRequest object so that additional method calls * can be chained together. * * @param bucketName The name of the bucket in which to create the new multipart upload, and * hence, the eventual object created from the multipart upload. * * @return This updated InitiateMultipartUploadRequest object. */ public InitiateMultipartUploadRequest withBucketName(String bucketName) { this.bucketName = bucketName; return this; } /** * Returns the key by which to store the new multipart upload, and hence, the eventual object * created from the multipart upload. * * @return The key by which to store the new multipart upload, and hence, the eventual object * created from the multipart upload. */ public String getKey() { return key; } /** * Sets the key by which to store the new multipart upload, and hence, the eventual object * created from the multipart upload. * * @param key The key by which to store the new multipart upload, and hence, the eventual object * created from the multipart upload. */ public void setKey(String key) { this.key = key; } /** * Sets the key by which to store the new multipart upload, and hence, the eventual object * created from the multipart upload. *

* Returns this updated InitiateMultipartUploadRequest object so that additional method calls * can be chained together. * * @param key The key by which to store the new multipart upload, and hence, the eventual object * created from the multipart upload. * * @return This updated InitiateMultipartUploadRequest object. */ public InitiateMultipartUploadRequest withKey(String key) { this.key = key; return this; } /** * Returns the optional canned Access Control List (ACL) to set permissions for the new object * created when the multipart upload is completed. * * @return The optional canned Access Control List (ACL) to set permissions for the new object * created when the multipart upload is completed. * * @see CannedAccessControlList */ public CannedAccessControlList getCannedACL() { return cannedACL; } /** * Sets the optional canned Access Control List (ACL) to set permissions for the new object * created when the multipart upload is completed. * * @param cannedACL The canned Access Control List (ACL) to set permissions for the new object * created when the multipart upload is completed. * * @see CannedAccessControlList */ public void setCannedACL(CannedAccessControlList cannedACL) { this.cannedACL = cannedACL; } /** * Sets the optional canned Access Control List (ACL) to set permissions for the new object * created when the multipart upload is completed. *

* Returns this updated InitiateMultipartUploadRequest object so that additional method calls * can be chained together. * * @param acl The optional canned Access Control List (ACL) to set permissions for the new * object created when the multipart upload is completed. * * @return This updated InitiateMultipartUploadRequest object. */ public InitiateMultipartUploadRequest withCannedACL(CannedAccessControlList acl) { this.cannedACL = acl; return this; } /** * Returns the optional access control list for the new upload. If specified, cannedAcl will be * ignored. */ public AccessControlList getAccessControlList() { return accessControlList; } /** * Sets the optional access control list for the new upload. If specified, cannedAcl will be * ignored. * * @param accessControlList The access control list for the new upload. */ public void setAccessControlList(AccessControlList accessControlList) { this.accessControlList = accessControlList; } /** * Sets the optional access control list for the new upload. If specified, cannedAcl will be * ignored. Returns this {@link InitiateMultipartUploadRequest}, enabling additional method * calls to be chained together. * * @param accessControlList The access control list for the new upload. */ public InitiateMultipartUploadRequest withAccessControlList( AccessControlList accessControlList) { setAccessControlList(accessControlList); return this; } /** * Returns the optional storage class to use when storing this upload's data in COS. If not * specified, the default storage class is used. *

* If not specified, the default is {@link StorageClass#Standard}. * * @return The optional storage class to use when storing this upload's data in COS. If not * specified, the default storage class is used. * * @see StorageClass */ public StorageClass getStorageClass() { return storageClass; } /** * Sets the optional storage class to use when storing this upload's data in COS. If not * specified, the default storage class is used. *

* If not specified, the default is {@link StorageClass#Standard}. * * @param storageClass The optional storage class to use when storing this upload's data in COS. * If not specified, the default storage class is used. * * @see StorageClass */ public void setStorageClass(StorageClass storageClass) { this.storageClass = storageClass; } /** * Sets the optional storage class to use when storing this upload's data in COS. If not * specified, the default storage class is used. *

* Returns this updated InitiateMultipartUploadRequest object so that additional method calls * can be chained together. * * @param storageClass The optional storage class to use when storing this upload's data in COS. * If not specified, the default storage class is used. * * @return This updated InitiateMultipartUploadRequest object. */ public InitiateMultipartUploadRequest withStorageClass(StorageClass storageClass) { this.storageClass = storageClass; return this; } public InitiateMultipartUploadRequest withStorageClass(String storageClass) { if (storageClass != null) this.storageClass = StorageClass.fromValue(storageClass); else this.storageClass = null; return this; } /** * Returns the additional information about the new object being created, such as content type, * content encoding, user metadata, etc. * * @return The additional information about the new object being created, such as content type, * content encoding, user metadata, etc. */ public ObjectMetadata getObjectMetadata() { return objectMetadata; } /** * Sets the additional information about the new object being created, such as content type, * content encoding, user metadata, etc. * * @param objectMetadata Additional information about the new object being created, such as * content type, content encoding, user metadata, etc. */ public void setObjectMetadata(ObjectMetadata objectMetadata) { this.objectMetadata = objectMetadata; } /** * Sets the additional information about the new object being created, such as content type, * content encoding, user metadata, etc. *

* Returns this updated InitiateMultipartUploadRequest object so that additional method calls * can be chained together. * * @param objectMetadata Additional information about the new object being created, such as * content type, content encoding, user metadata, etc. * * @return This updated InitiateMultipartUploadRequest object. */ public InitiateMultipartUploadRequest withObjectMetadata(ObjectMetadata objectMetadata) { setObjectMetadata(objectMetadata); return this; } /** * Sets the optional redirect location for the new object. * * @param redirectLocation The redirect location for the new object. */ public void setRedirectLocation(String redirectLocation) { this.redirectLocation = redirectLocation; } /** * Gets the optional redirect location for the new object. */ public String getRedirectLocation() { return this.redirectLocation; } /** * Sets the optional redirect location for the new object. Returns this * {@link InitiateMultipartUploadRequest}, enabling additional method calls to be chained * together. * * @param redirectLocation The redirect location for the new object. */ public InitiateMultipartUploadRequest withRedirectLocation(String redirectLocation) { this.redirectLocation = redirectLocation; return this; } @Override public SSECustomerKey getSSECustomerKey() { return sseCustomerKey; } /** * Sets the optional customer-provided server-side encryption key to use to encrypt the upload * being started. * * @param sseKey The optional customer-provided server-side encryption key to use to encrypt the * upload being started. */ public void setSSECustomerKey(SSECustomerKey sseKey) { if (sseKey != null && this.sseCOSKeyManagementParams != null) { throw new IllegalArgumentException( "Either SSECustomerKey or SSECOSKeyManagementParams must not be set at the same time."); } this.sseCustomerKey = sseKey; } /** * Sets the optional customer-provided server-side encryption key to use to encrypt the upload * being started, and returns the updated InitiateMultipartUploadRequest so that additional * method calls may be chained together. * * @param sseKey The optional customer-provided server-side encryption key to use to encrypt the * upload being started. * * @return The updated request object, so that additional method calls can be chained together. */ public InitiateMultipartUploadRequest withSSECustomerKey(SSECustomerKey sseKey) { setSSECustomerKey(sseKey); return this; } /** * Returns the COS Key Management System parameters used to encrypt the object on server side. */ @Override public SSECOSKeyManagementParams getSSECOSKeyManagementParams() { return sseCOSKeyManagementParams; } /** * Sets the COS Key Management System parameters used to encrypt the object on server side. */ public void setSSECOSKeyManagementParams(SSECOSKeyManagementParams params) { if (params != null && this.sseCustomerKey != null) { throw new IllegalArgumentException( "Either SSECustomerKey or SSECOSKeyManagementParams must not be set at the same time."); } this.sseCOSKeyManagementParams = params; } /** * Sets the COS Key Management System parameters used to encrypt the object on server side. * * @return returns the update InitiateMultipartUploadRequest */ public InitiateMultipartUploadRequest withSSECOSKeyManagementParams( SSECOSKeyManagementParams sseCOSKeyManagementParams) { setSSECOSKeyManagementParams(sseCOSKeyManagementParams); return this; } /** * Sets the data size and part size of this multipart upload request; * * @param dataSize * @param partSize */ public void setDataSizePartSize(long dataSize, long partSize) { this.dataSize = dataSize; this.partSize = partSize; } /** * Sets the data size and part size of this multipart upload request; * * @param dataSize * @param partSize * @return returns the update InitiateMultipartUploadRequest */ public InitiateMultipartUploadRequest withDataSizePartSize(long dataSize, long partSize) { setDataSizePartSize(dataSize, partSize); return this; } public long getDataSize() { return this.dataSize; } public long getPartSize() { return this.partSize; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy