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

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

There is a newer version: 5.6.238.2
Show newest version
/*
 * 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 java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.qcloud.cos.internal.CosServiceRequest;

public class GetObjectRequest extends CosServiceRequest
        implements SSECustomerKeyProvider, Serializable {

    /** The name of the bucket containing the object to retrieve */
    private String bucketName;

    /** The key under which the desired object is stored */
    private String key;

    /**
     * Optional version ID specifying which version of the object to download. If not specified, the
     * most recent version will be downloaded.
     * 

* For more information about enabling versioning for a bucket, see * {@link COS#setBucketVersioningConfiguration(SetBucketVersioningConfigurationRequest)}. */ private String versionId; /** Optional member indicating the byte range of data to retrieve */ private long[] range; /** * traffic limit speed in second, the unit is bit/s */ private int trafficLimit = 0; /** * Optional list of ETag values that constrain this request to only be executed if the object's * ETag matches one of the specified ETag values. */ private List matchingETagConstraints = new ArrayList(); /** * Optional list of ETag values that constrain this request to only be executed if the object's * ETag does not match any of the specified ETag constraint values. */ private List nonmatchingEtagConstraints = new ArrayList(); /** * Optional field that constrains this request to only be executed if the object has not been * modified since the specified date. */ private Date unmodifiedSinceConstraint; /** * Optional field that constrains this request to only be executed if the object has been * modified since the specified date. */ private Date modifiedSinceConstraint; /** * Optional field that overrides headers on the response. */ private ResponseHeaderOverrides responseHeaders; /** * The optional customer-provided server-side encryption key to use to decrypt this object. */ private SSECustomerKey sseCustomerKey; private int downloadPartsThreads = 1; public GetObjectRequest(COSObjectId cosObjectId) { this(cosObjectId.getBucket(), cosObjectId.getKey(), cosObjectId.getVersionId()); } /** * Constructs a new {@link GetObjectRequest} with all the required parameters. * * @param bucketName The name of the bucket containing the desired object. * @param key The key in the specified bucket under which the object is stored. * * @see GetObjectRequest#GetObjectRequest(String, String, String) */ public GetObjectRequest(String bucketName, String key) { this(bucketName, key, null); } /** * Constructs a new {@link GetObjectRequest} with all the required parameters. * * @param bucketName The name of the bucket containing the desired object. * @param key The key in the specified bucket under which the object is stored. * @param versionId The Qcloud COS version ID specifying a specific version of the object to * download. * * @see GetObjectRequest#GetObjectRequest(String, String) */ public GetObjectRequest(String bucketName, String key, String versionId) { setBucketName(bucketName); setKey(key); setVersionId(versionId); } /** * Gets the name of the bucket containing the object to be downloaded. * * @return The name of the bucket containing the object to be downloaded. * * @see GetObjectRequest#setBucketName(String) * @see GetObjectRequest#withBucketName(String) */ public String getBucketName() { return bucketName; } /** * Sets the name of the bucket containing the object to be downloaded. * * @param bucketName The name of the bucket containing the object to be downloaded. * * @see GetObjectRequest#getBucketName() * @see GetObjectRequest#withBucketName(String) */ public void setBucketName(String bucketName) { this.bucketName = bucketName; } /** * Sets the name of the bucket containing the object to be downloaded. Returns this * {@link GetObjectRequest}, enabling additional method calls to be chained together. * * @param bucketName The name of the bucket containing the object to be downloaded. * * @return This {@link GetObjectRequest}, enabling additional method calls to be chained * together. * * @see GetObjectRequest#getBucketName() * @see GetObjectRequest#setBucketName(String) */ public GetObjectRequest withBucketName(String bucketName) { setBucketName(bucketName); return this; } /** * Gets the key under which the object to be downloaded is stored. * * @return The key under which the object to be downloaded is stored. * * @see GetObjectRequest#setKey(String) * @see GetObjectRequest#withKey(String) */ public String getKey() { return key; } /** * Sets the key under which the object to be downloaded is stored. * * @param key The key under which the object to be downloaded is stored. * * @see GetObjectRequest#getKey() * @see GetObjectRequest#withKey(String) */ public void setKey(String key) { this.key = key; } /** * Sets the key under which the object to be downloaded is stored. Returns this * {@link GetObjectRequest}, enabling additional method calls to be chained together. * * @param key The key under which the object to be downloaded is stored. * * @return This {@link GetObjectRequest}, enabling additional method calls to be chained * together. * * @see GetObjectRequest#getKey() * @see GetObjectRequest#setKey(String) */ public GetObjectRequest withKey(String key) { setKey(key); return this; } /** *

* Gets the optional version ID specifying which version of the object to download. If not * specified, the most recent version will be downloaded. *

*

* Objects created before versioning was enabled or when versioning is suspended are given the * default null version ID (see {@link Constants#NULL_VERSION_ID}). Note that the * null version ID is a valid version ID and is not the same as not having a * version ID. *

*

* For more information about enabling versioning for a bucket, see * {@link COS#setBucketVersioningConfiguration(SetBucketVersioningConfigurationRequest)}. *

* * @return The optional version ID specifying which version of the object to download. If not * specified, the most recent version will be downloaded. * * @see GetObjectRequest#setVersionId(String) * @see GetObjectRequest#withVersionId(String) */ public String getVersionId() { return versionId; } /** * Sets the optional version ID specifying which version of the object to download. If not * specified, the most recent version will be downloaded. *

* Objects created before versioning was enabled or when versioning is suspended will be given * the default null version ID (see {@link Constants#NULL_VERSION_ID}). Note that * the null version ID is a valid version ID and is not the same as not having a * version ID. *

*

* For more information about enabling versioning for a bucket, see * {@link COS#setBucketVersioningConfiguration(SetBucketVersioningConfigurationRequest)}. *

* * @param versionId The optional version ID specifying which version of the object to download. * * @see GetObjectRequest#getVersionId() * @see GetObjectRequest#withVersionId(String) */ public void setVersionId(String versionId) { this.versionId = versionId; } /** *

* Sets the optional version ID specifying which version of the object to download and returns * this object, enabling additional method calls to be chained together. If not specified, the * most recent version will be downloaded. *

*

* Objects created before versioning was enabled or when versioning is suspended will be given * the default or null version ID (see {@link Constants#NULL_VERSION_ID}). Note * that the null version ID is a valid version ID and is not the same as not having * a version ID. *

*

* For more information about enabling versioning for a bucket, see * {@link COS#setBucketVersioningConfiguration(SetBucketVersioningConfigurationRequest)}. *

* * @param versionId The optional version ID specifying which version of the object to download. * * @return The updated request object, enabling additional method calls to be chained together. * * @see GetObjectRequest#getVersionId() * @see GetObjectRequest#setVersionId(String) */ public GetObjectRequest withVersionId(String versionId) { setVersionId(versionId); return this; } /* * Optional Request Parameters */ /** *

* Gets the optional inclusive byte range within the desired object that will be downloaded by * this request. *

*

* The range is returned as a two element array, containing the start and end index of the byte * range. If no byte range has been specified, the entire object is downloaded and this method * returns null. *

* * @return A two element array indicating the inclusive start index and end index within the * object being downloaded by this request. Returns null if no range has * been specified, and the whole object is to be downloaded. * * @see GetObjectMetadataRequest#setRange(long, long) * @see GetObjectRequest#withRange(long, long) */ public long[] getRange() { return range; } /** *

* Sets the optional inclusive byte range within the desired object that will be downloaded by * this request. *

*

* The first byte in an object has position 0; as an example, the first ten bytes of an object * can be downloaded by specifying a range of 0 to 9. *

*

* If no byte range is specified, this request downloads the entire object from Qcloud COS. *

* * @param start The start of the inclusive byte range to download. * @param end The end of the inclusive byte range to download. * * @see GetObjectMetadataRequest#getRange() * @see GetObjectRequest#withRange(long, long) */ public void setRange(long start, long end) { range = new long[] {start, end}; } public void setRangeStart(long start) { if (start < 0) { throw new IllegalArgumentException("The range start should be greater than or equal to 0"); } range = new long[] {start, -1L}; } public void setRangeEnd(long end) { if (end < 0) { throw new IllegalArgumentException("The range end should be greater than or equal to 0"); } range = new long[] {-1L, end}; } /** *

* Sets the optional inclusive byte range within the desired object that will be downloaded by * this request. Returns this {@link GetObjectRequest}, enabling additional method calls to be * chained together. *

*

* The first byte in an object has position 0; as an example, the first ten bytes of an object * can be downloaded by specifying a range of 0 to 9. *

*

* If no byte range is specified, this request downloads the entire object from Qcloud COS. *

* * @param start The start of the inclusive byte range to download. * @param end The end of the inclusive byte range to download. * * @return This {@link GetObjectRequest}, enabling additional method calls to be chained * together. * * @see GetObjectRequest#getRange() * @see GetObjectRequest#setRange(long, long) */ public GetObjectRequest withRange(long start, long end) { setRange(start, end); return this; } /** * Gets the optional list of ETag constraints that, when present, must include a match * for the object's current ETag in order for this request to be executed. Only one ETag in the * list needs to match for this request to be executed by Qcloud COS. * * @return The optional list of ETag constraints that when present must include a match * for the object's current ETag in order for this request to be executed. * * @see GetObjectRequest#setMatchingETagConstraints(List) * @see GetObjectRequest#withMatchingETagConstraint(String) */ public List getMatchingETagConstraints() { return matchingETagConstraints; } /** * Sets the optional list of ETag constraints that when present must include a match for * the object's current ETag in order for this request to be executed. If none of the specified * ETags match the object's current ETag, this request will not be executed. Only one ETag in * the list needs to match for the request to be executed by Qcloud COS. * * @param eTagList The optional list of ETag constraints that must include a match for * the object's current ETag in order for this request to be executed. * * @see GetObjectRequest#getMatchingETagConstraints() * @see GetObjectRequest#withMatchingETagConstraint(String) */ public void setMatchingETagConstraints(List eTagList) { this.matchingETagConstraints = eTagList; } /** * Sets a single ETag constraint to this request. Returns this {@link GetObjectRequest}, * enabling additional method calls to be chained together. *

* Multiple ETag constraints can be added to a request, but one must match the object's current * ETag in order for this request to be executed. If none of the ETag constraints added to this * request match the object's current ETag, this request will not be executed by Qcloud COS. *

* * @param eTag The matching ETag constraint to add to this request. * * @return This {@link GetObjectRequest}, enabling additional method calls to be chained * together. * * @see GetObjectRequest#getMatchingETagConstraints() * @see GetObjectRequest#setMatchingETagConstraints(List) */ public GetObjectRequest withMatchingETagConstraint(String eTag) { this.matchingETagConstraints.add(eTag); return this; } /** * Gets the optional list of ETag constraints that when present, must not include a match * for the object's current ETag in order for this request to be executed. If any entry in the * non-matching ETag constraint list matches the object's current ETag, this request will * not be executed by Qcloud COS. * * @return The optional list of ETag constraints that when present, must not include a * match for the object's current ETag in order for this request to be executed. * * @see GetObjectRequest#setNonmatchingETagConstraints(List) * @see GetObjectRequest#withNonmatchingETagConstraint(String) */ public List getNonmatchingETagConstraints() { return nonmatchingEtagConstraints; } /** * Sets the optional list of ETag constraints that when present must not include a match * for the object's current ETag in order for this request to be executed. If any entry in the * non-matching ETag constraint list matches the object's current ETag, this request will * not be executed by Qcloud COS. * * @param eTagList The list of ETag constraints that, when present, must not include a * match for the object's current ETag in order for this request to be executed. * * @see GetObjectRequest#getNonmatchingETagConstraints() * @see GetObjectRequest#withNonmatchingETagConstraint(String) */ public void setNonmatchingETagConstraints(List eTagList) { this.nonmatchingEtagConstraints = eTagList; } /** * Sets a single ETag constraint to this request. Returns this {@link GetObjectRequest}, * enabling additional method calls to be chained together. *

* Multiple ETag constraints can be added to a request, but all ETag constraints must not * match the object's current ETag in order for this request to be executed. If any entry in the * non-matching ETag constraint list matches the object's current ETag, this request will * not be executed by Qcloud COS. *

* * @param eTag The non-matching ETag constraint to add to this request. * * @return This {@link GetObjectRequest}, enabling additional method calls to be chained * together. * * @see GetObjectRequest#getNonmatchingETagConstraints() * @see GetObjectRequest#setNonmatchingETagConstraints(List) */ public GetObjectRequest withNonmatchingETagConstraint(String eTag) { this.nonmatchingEtagConstraints.add(eTag); return this; } /** * Gets the optional unmodified constraint that restricts this request to executing only if the * object has not been modified after the specified date. * * @return The optional unmodified constraint that restricts this request to executing only if * the object has not been modified after the specified date. * * @see GetObjectRequest#setUnmodifiedSinceConstraint(Date) * @see GetObjectRequest#withUnmodifiedSinceConstraint(Date) */ public Date getUnmodifiedSinceConstraint() { return unmodifiedSinceConstraint; } /** * Sets the optional unmodified constraint that restricts this request to executing only if the * object has not been modified after the specified date. *

* Note that Qcloud COS will ignore any dates occurring in the future. * * @param date The unmodified constraint that restricts this request to executing only if the * object has not been modified after this date. * * @see GetObjectRequest#getUnmodifiedSinceConstraint() * @see GetObjectRequest#withUnmodifiedSinceConstraint(Date) */ public void setUnmodifiedSinceConstraint(Date date) { this.unmodifiedSinceConstraint = date; } /** * Sets the optional unmodified constraint that restricts this request to executing only if the * object has not been modified after the specified date. Returns this * {@link GetObjectRequest}, enabling additional method calls to be chained together. *

* Note that Qcloud COS will ignore any dates occurring in the future. * * @param date The unmodified constraint that restricts this request to executing only if the * object has not been modified after this date. * * @return This {@link GetObjectRequest}, enabling additional method calls to be chained * together. * * @see GetObjectRequest#getUnmodifiedSinceConstraint() * @see GetObjectRequest#setUnmodifiedSinceConstraint(Date) */ public GetObjectRequest withUnmodifiedSinceConstraint(Date date) { setUnmodifiedSinceConstraint(date); return this; } /** * Gets the optional modified constraint that restricts this request to executing only if the * object has been modified after the specified date. * * @return The optional modified constraint that restricts this request to executing only if the * object has been modified after the specified date. * * @see GetObjectRequest#setModifiedSinceConstraint(Date) * @see GetObjectRequest#withModifiedSinceConstraint(Date) */ public Date getModifiedSinceConstraint() { return modifiedSinceConstraint; } /** * Sets the optional modified constraint that restricts this request to executing only if the * object has been modified after the specified date. *

* Note that Qcloud COS will ignore any dates occurring in the future. *

* * @param date The modified constraint that restricts this request to executing only if the * object has been modified after the specified date. * * @see GetObjectRequest#getModifiedSinceConstraint() * @see GetObjectRequest#withModifiedSinceConstraint(Date) */ public void setModifiedSinceConstraint(Date date) { this.modifiedSinceConstraint = date; } /** * Sets the optional modified constraint that restricts this request to executing only if the * object has been modified after the specified date. Returns this * {@link GetObjectRequest}, enabling additional method calls to be chained together. *

* Note that Qcloud COS will ignore any dates occurring in the future. * * @param date The modified constraint that restricts this request to executing only if the * object has been modified after the specified date. * * @return This {@link GetObjectRequest}, enabling additional method calls to be chained * together. * * @see GetObjectRequest#getModifiedSinceConstraint() * @see GetObjectRequest#setModifiedSinceConstraint(Date) */ public GetObjectRequest withModifiedSinceConstraint(Date date) { setModifiedSinceConstraint(date); return this; } /** * Returns the headers to be overridden in the service response. * * @return the headers to be overridden in the service response. */ public ResponseHeaderOverrides getResponseHeaders() { return responseHeaders; } /** * Sets the headers to be overridden in the service response. * * @param responseHeaders The headers to be overridden in the service response. */ public void setResponseHeaders(ResponseHeaderOverrides responseHeaders) { this.responseHeaders = responseHeaders; } /** * Sets the headers to be overridden in the service response and returns this object, for method * chaining. * * @param responseHeaders The headers to be overridden in the service response. * * @return This {@link GetObjectRequest} for method chaining. */ public GetObjectRequest withResponseHeaders(ResponseHeaderOverrides responseHeaders) { setResponseHeaders(responseHeaders); return this; } @Override public SSECustomerKey getSSECustomerKey() { return sseCustomerKey; } /** * Sets the optional customer-provided server-side encryption key to use to decrypt this object. * * @param sseKey The optional customer-provided server-side encryption key to use to decrypt * this object. */ public void setSSECustomerKey(SSECustomerKey sseKey) { this.sseCustomerKey = sseKey; } /** * Sets the optional customer-provided server-side encryption key to use to decrypt this object, * and returns the updated GetObjectRequest so that additional method calls may be chained * together. * * @param sseKey The optional customer-provided server-side encryption key to use to decrypt * this object. * * @return The optional customer-provided server-side encryption key to use to decrypt this * object. */ public GetObjectRequest withSSECustomerKey(SSECustomerKey sseKey) { setSSECustomerKey(sseKey); return this; } public COSObjectId getCOSObjectId() { return new COSObjectId(bucketName, key, versionId); } public int getTrafficLimit() { return trafficLimit; } public void setTrafficLimit(int trafficLimit) { this.trafficLimit = trafficLimit; } public void setDownloadPartsThreads(int downloadThreads) { this.downloadPartsThreads = downloadThreads; } public int getDownloadPartsThreads() { return downloadPartsThreads; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy