/* * Copyright 2010-2017 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.Date; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.internal.ObjectExpirationResult; import com.amazonaws.services.s3.internal.S3RequesterChargedResult; import com.amazonaws.services.s3.internal.S3VersionResult; import com.amazonaws.services.s3.internal.SSEResultBase; /** * Contains the data returned by Amazon S3 from the <code>putObject</code> * operation. * <p> * Use this class to access information about the new object created from the * <code>putObject</code> request, such as its ETag and optional version ID. * <p> * This class also contains the MD5 hash of the object content calculated on the * client-side. * * @see AmazonS3Client#putObject(String, String, java.io.File) * @see AmazonS3Client#putObject(String, String, java.io.InputStream, * ObjectMetadata) * @see AmazonS3Client#putObject(PutObjectRequest) */ public class PutObjectResult extends SSEResultBase implements ObjectExpirationResult, S3RequesterChargedResult, S3VersionResult, Serializable { /** * The version ID of the new, uploaded object. This field will only be * present if object versioning has been enabled for the bucket to which the * object was uploaded. */ private String versionId; /** The ETag value of the new object */ private String eTag; /** The time this object expires, or null if it has no expiration */ private Date expirationTime; /** The expiration rule for this object */ private String expirationTimeRuleId; /** The content MD5 */ private String contentMd5; /** The metadata returned as a result of PutObject operation.*/ private ObjectMetadata metadata; /** * Indicate if the requester is charged for conducting this operation from * Requester Pays Buckets. */ private boolean isRequesterCharged; /** * Gets the optional version ID of the newly uploaded object. This field will * be set only if object versioning is enabled for the bucket the * object was uploaded to. * * @return The optional version ID of the newly uploaded object. * * @see PutObjectResult#setVersionId(String) */ @Override public String getVersionId() { return versionId; } /** * Sets the optional version ID of the newly uploaded object. * * @param versionId * The optional version ID of the newly uploaded object. * * @see PutObjectResult#getVersionId() */ @Override public void setVersionId(String versionId) { this.versionId = versionId; } /** * Gets the server-side ETag value for the newly created object. * * @return The server-side ETag value for the new object. * * @see PutObjectResult#setETag(String) */ public String getETag() { return eTag; } /** * Sets the ETag value for the new object that was created from the * associated <code>putObject</code> request. * * @param eTag * The ETag value for the new object. * * @see PutObjectResult#getETag() */ public void setETag(String eTag) { this.eTag = eTag; } /** * Returns the expiration time for this object, or null if it doesn't expire. */ public Date getExpirationTime() { return expirationTime; } /** * Sets the expiration time for the object. * * @param expirationTime * The expiration time for the object. */ public void setExpirationTime(Date expirationTime) { this.expirationTime = expirationTime; } /** * Returns the {@link BucketLifecycleConfiguration} rule ID for this * object's expiration, or null if it doesn't expire. */ public String getExpirationTimeRuleId() { return expirationTimeRuleId; } /** * Sets the {@link BucketLifecycleConfiguration} rule ID for this object's * expiration * * @param expirationTimeRuleId * The rule ID for this object's expiration */ public void setExpirationTimeRuleId(String expirationTimeRuleId) { this.expirationTimeRuleId = expirationTimeRuleId; } /** * Sets the Base64-encoded MD5 hash of the object content that was * calculated on the client-side. * * @param contentMd5 * The content MD5 */ public void setContentMd5(String contentMd5) { this.contentMd5 = contentMd5; } /** * Returns the Base64-encoded MD5 hash of the object content that was * calculated on the client-side. This method returns null if the MD5 * validation is disabled and the caller didn't provide the MD5 hash in the * ObjectMetadata when sending the PutObjectRequest. */ public String getContentMd5() { return contentMd5; } /** * Returns the metadata retrieved as a response to * {@link AmazonS3Client#putObject(PutObjectRequest)} operation. */ public ObjectMetadata getMetadata() { return metadata; } /** * Sets the metadata retrieved as a response to * {@link AmazonS3Client#putObject(PutObjectRequest)} operation. */ public void setMetadata(ObjectMetadata metadata) { this.metadata = metadata; } @Override public boolean isRequesterCharged() { return isRequesterCharged; } @Override public void setRequesterCharged(boolean isRequesterCharged) { this.isRequesterCharged = isRequesterCharged; } }