/*
* Copyright 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.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.S3.Model
{
///
/// Container for the parameters to the PutObject operation.
/// Adds an object to a bucket. You must have WRITE permissions on a bucket to add an
/// object to it.
///
///
///
/// Amazon S3 never adds partial objects; if you receive a success response, Amazon S3
/// added the entire object to the bucket. You cannot use PutObject
to only
/// update a single piece of metadata for an existing object. You must put the entire
/// object with updated metadata if you want to update some values.
///
///
///
/// Amazon S3 is a distributed system. If it receives multiple write requests for the
/// same object simultaneously, it overwrites all but the last object written. To prevent
/// objects from being deleted or overwritten, you can use Amazon
/// S3 Object Lock.
///
///
///
/// To ensure that data is not corrupted traversing the network, use the Content-MD5
/// header. When you use this header, Amazon S3 checks the object against the provided
/// MD5 value and, if they do not match, returns an error. Additionally, you can calculate
/// the MD5 while putting an object to Amazon S3 and compare the returned ETag to the
/// calculated MD5 value.
///
/// -
///
/// To successfully complete the
PutObject
request, you must have the s3:PutObject
/// in your IAM permissions.
///
/// -
///
/// To successfully change the objects acl of your
PutObject
request, you
/// must have the s3:PutObjectAcl
in your IAM permissions.
///
/// -
///
/// The
Content-MD5
header is required for any request to upload an object
/// with a retention period configured using Amazon S3 Object Lock. For more information
/// about Amazon S3 Object Lock, see Amazon
/// S3 Object Lock Overview in the Amazon S3 User Guide.
///
///
///
/// You have three mutually exclusive options to protect data using server-side encryption
/// in Amazon S3, depending on how you choose to manage the encryption keys. Specifically,
/// the encryption key options are Amazon S3 managed keys (SSE-S3), Amazon Web Services
/// KMS keys (SSE-KMS), and customer-provided keys (SSE-C). Amazon S3 encrypts data with
/// server-side encryption by using Amazon S3 managed keys (SSE-S3) by default. You can
/// optionally tell Amazon S3 to encrypt data at by rest using server-side encryption
/// with other key options. For more information, see Using
/// Server-Side Encryption.
///
///
///
/// When adding a new object, You can use headers to grant ACL- based permissions. By default, all objects are private.
/// Only the owner has full access control. When adding a new object, you can grant permissions
/// to individual Amazon Web Services accounts or to predefined groups defined by Amazon
/// S3. These permissions are then added to the ACL on the object. For more information,
/// see Access
/// Control List (ACL) Overview and Managing
/// ACLs Using the REST API.
///
///
///
/// If the bucket that you're uploading objects to uses the bucket owner enforced setting
/// for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets
/// that use this setting only accept PUT requests that don't specify an ACL or PUT requests
/// that specify bucket owner full control ACLs, such as the bucket-owner-full-control
/// canned ACL or an equivalent form of this ACL expressed in the XML format. PUT requests
/// that contain other ACLs (for example, custom grants to certain Amazon Web Services
/// accounts) fail and return a 400
error with the error code AccessControlListNotSupported
.
/// For more information, see
/// Controlling ownership of objects and disabling ACLs in the Amazon S3 User Guide.
///
///
///
/// If your bucket uses the bucket owner enforced setting for Object Ownership, all objects
/// written to the bucket by any account will be owned by the bucket owner.
///
///
///
/// By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects.
/// The STANDARD storage class provides high durability and high availability. Depending
/// on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts
/// only uses the OUTPOSTS Storage Class. For more information, see Storage
/// Classes in the Amazon S3 User Guide.
///
///
///
/// If you enable versioning for a bucket, Amazon S3 automatically generates a unique
/// version ID for the object being stored. Amazon S3 returns this ID in the response.
/// When you enable versioning for a bucket, if Amazon S3 receives multiple write requests
/// for the same object simultaneously, it stores all of the objects.
///
///
///
/// For more information about versioning, see Adding
/// Objects to Versioning Enabled Buckets. For information about returning the versioning
/// state of a bucket, see GetBucketVersioning.
///
///
///
/// For more information about related Amazon S3 APIs, see the following:
///
///
///
public partial class PutObjectRequest : PutWithACLRequest
{
private S3CannedACL cannedACL;
private bool? bucketKeyEnabled;
private string bucketName;
private string contentBody;
private string expectedBucketOwner;
private string key;
private Stream inputStream;
private string filePath;
private bool autoCloseStream = true;
private bool autoResetStreamPosition = true;
private bool useChunkEncoding = true;
private HeadersCollection headersCollection = new HeadersCollection();
private MetadataCollection metadataCollection = new MetadataCollection();
private string md5Digest;
private ObjectLockLegalHoldStatus objectLockLegalHoldStatus;
private ObjectLockMode objectLockMode;
private DateTime? objectLockRetainUntilDate;
private RequestPayer requestPayer;
private ServerSideEncryptionMethod serverSideEncryption;
private ServerSideEncryptionCustomerMethod serverSideCustomerEncryption;
private string serverSideEncryptionCustomerProvidedKey;
private string serverSideEncryptionCustomerProvidedKeyMD5;
private string serverSideEncryptionKeyManagementServiceKeyId;
private string serverSideEncryptionKeyManagementServiceEncryptionContext;
private S3StorageClass storageClass;
private List tagset = new List();
private string websiteRedirectLocation;
private bool calculateContentMD5Header = false;
private ChecksumAlgorithm _checksumAlgorithm;
private string _checksumCRC32;
private string _checksumCRC32C;
private string _checksumSHA1;
private string _checksumSHA256;
///
/// Overriden to turn off sending SHA256 header.
///
protected override bool IncludeSHA256Header
{
get
{
return false;
}
}
///
/// Overriden to turn on expect 100 continue.
///
protected override bool Expect100Continue
{
get
{
return true;
}
}
///
/// A canned access control list (CACL) to apply to the object.
/// Please refer to for
/// information on S3 Canned ACLs.
///
public S3CannedACL CannedACL
{
get { return this.cannedACL; }
set { this.cannedACL = value; }
}
// Check to see if CannedACL property is set
internal bool IsSetCannedACL()
{
return cannedACL != null && cannedACL != S3CannedACL.NoACL;
}
///
/// Gets and sets the property BucketKeyEnabled.
///
/// Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with
/// server-side encryption using AWS KMS (SSE-KMS). Setting this header to true
/// causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
///
///
///
/// Specifying this header with a PUT action doesn't affect bucket-level settings for
/// S3 Bucket Key.
///
///
public bool BucketKeyEnabled
{
get { return this.bucketKeyEnabled.GetValueOrDefault(); }
set { this.bucketKeyEnabled = value; }
}
internal bool IsSetBucketKeyEnabled()
{
return bucketKeyEnabled.HasValue;
}
///
/// Gets and sets the property BucketName.
///
/// The bucket name to which the PUT action was initiated.
///
///
///
/// 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.
///
///
public string BucketName
{
get { return this.bucketName; }
set { this.bucketName = value; }
}
// Check to see if Bucket property is set
internal bool IsSetBucket()
{
return this.bucketName != null;
}
///
/// An MD5 digest for the content.
///
///
///
/// The base64 encoded 128-bit MD5 digest of the message
/// (without the headers) according to RFC 1864. This header
/// can be used as a message integrity check to verify that
/// the data is the same data that was originally sent.
///
///
/// If supplied, after the file has been uploaded to S3,
/// S3 checks to ensure that the MD5 hash of the uploaded file
/// matches the hash supplied.
///
///
/// Although it is optional, we recommend using the
/// Content-MD5 mechanism as an end-to-end integrity check.
///
///
public string MD5Digest
{
get { return this.md5Digest; }
set { this.md5Digest = value; }
}
///
/// Checks if MD5Digest property is set.
///
/// true if MD5Digest property is set.
internal bool IsSetMD5Digest()
{
return !System.String.IsNullOrEmpty(this.md5Digest);
}
///
/// This is a convenience property for Headers.ContentType.
///
public string ContentType
{
get { return this.Headers.ContentType; }
set { this.Headers.ContentType = value; }
}
///
/// The account ID of the expected bucket owner.
/// If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.
///
public string ExpectedBucketOwner
{
get { return this.expectedBucketOwner; }
set { this.expectedBucketOwner = value; }
}
///
/// Checks to see if ExpectedBucketOwner is set.
///
/// true, if ExpectedBucketOwner property is set.
internal bool IsSetExpectedBucketOwner()
{
return !String.IsNullOrEmpty(this.expectedBucketOwner);
}
///
/// Gets and sets Key property. This key is used to identify the object in S3.
///
public string Key
{
get { return this.key; }
set { this.key = value; }
}
// Check to see if Key property is set
internal bool IsSetKey()
{
return this.key != null;
}
///
/// The collection of meta data for the request.
///
public MetadataCollection Metadata
{
get
{
if (this.metadataCollection == null)
this.metadataCollection = new MetadataCollection();
return this.metadataCollection;
}
internal set
{
this.metadataCollection = value;
}
}
///
/// Gets and sets the property ObjectLockLegalHoldStatus.
///
/// Specifies whether a legal hold will be applied to this object. For more information
/// about S3 Object Lock, see Object
/// Lock.
///
///
public ObjectLockLegalHoldStatus ObjectLockLegalHoldStatus
{
get { return this.objectLockLegalHoldStatus; }
set { this.objectLockLegalHoldStatus = value; }
}
// Check to see if ObjectLockLegalHoldStatus property is set
internal bool IsSetObjectLockLegalHoldStatus()
{
return this.objectLockLegalHoldStatus != null;
}
///
/// Gets and sets the property ObjectLockMode.
///
/// The Object Lock mode that you want to apply to this object.
///
///
public ObjectLockMode ObjectLockMode
{
get { return this.objectLockMode; }
set { this.objectLockMode = value; }
}
// Check to see if ObjectLockMode property is set
internal bool IsSetObjectLockMode()
{
return this.objectLockMode != null;
}
///
/// Gets and sets the property ObjectLockRetainUntilDate.
///
/// The date and time when you want this object's Object Lock to expire.
///
///
public DateTime ObjectLockRetainUntilDate
{
get { return this.objectLockRetainUntilDate.GetValueOrDefault(); }
set { this.objectLockRetainUntilDate = value; }
}
// Check to see if ObjectLockRetainUntilDate property is set
internal bool IsSetObjectLockRetainUntilDate()
{
return this.objectLockRetainUntilDate.HasValue;
}
///
/// Confirms that the requester knows that she or he will be charged for the request.
/// Bucket owners need not specify this parameter in their requests.
///
public RequestPayer RequestPayer
{
get { return this.requestPayer; }
set { this.requestPayer = value; }
}
///
/// Checks to see if RequetsPayer is set.
///
/// true, if RequestPayer property is set.
internal bool IsSetRequestPayer()
{
return requestPayer != null;
}
///
///
/// The server-side encryption algorithm used when storing this object in Amazon S3 (for
/// example, AES256, aws:kms
).
///
///
public ServerSideEncryptionMethod ServerSideEncryptionMethod
{
get { return this.serverSideEncryption; }
set { this.serverSideEncryption = value; }
}
// Check to see if ServerSideEncryption property is set
internal bool IsSetServerSideEncryptionMethod()
{
return this.serverSideEncryption != null && this.serverSideEncryption != ServerSideEncryptionMethod.None;
}
///
/// The Server-side encryption algorithm to be used with the customer provided key.
///
///
public ServerSideEncryptionCustomerMethod ServerSideEncryptionCustomerMethod
{
get { return this.serverSideCustomerEncryption; }
set { this.serverSideCustomerEncryption = value; }
}
// Check to see if ServerSideEncryptionCustomerMethod property is set
internal bool IsSetServerSideEncryptionCustomerMethod()
{
return this.serverSideCustomerEncryption != null && this.serverSideCustomerEncryption != ServerSideEncryptionCustomerMethod.None;
}
///
/// The base64-encoded encryption key for Amazon S3 to use to encrypt the object
///
/// Using the encryption key you provide as part of your request Amazon S3 manages both the encryption, as it writes
/// to disks, and decryption, when you access your objects. Therefore, you don't need to maintain any data encryption code. The only
/// thing you do is manage the encryption keys you provide.
///
///
/// When you retrieve an object, you must provide the same encryption key as part of your request. Amazon S3 first verifies
/// the encryption key you provided matches, and then decrypts the object before returning the object data to you.
///
///
/// Important: Amazon S3 does not store the encryption key you provide.
///
///
[AWSProperty(Sensitive=true)]
public string ServerSideEncryptionCustomerProvidedKey
{
get { return this.serverSideEncryptionCustomerProvidedKey; }
set { this.serverSideEncryptionCustomerProvidedKey = value; }
}
///
/// Checks if ServerSideEncryptionCustomerProvidedKey property is set.
///
/// true if ServerSideEncryptionCustomerProvidedKey property is set.
internal bool IsSetServerSideEncryptionCustomerProvidedKey()
{
return !System.String.IsNullOrEmpty(this.serverSideEncryptionCustomerProvidedKey);
}
///
/// The MD5 of the customer encryption key specified in the ServerSideEncryptionCustomerProvidedKey property. The MD5 is
/// base 64 encoded. This field is optional, the SDK will calculate the MD5 if this is not set.
///
public string ServerSideEncryptionCustomerProvidedKeyMD5
{
get { return this.serverSideEncryptionCustomerProvidedKeyMD5; }
set { this.serverSideEncryptionCustomerProvidedKeyMD5 = value; }
}
///
/// Checks if ServerSideEncryptionCustomerProvidedKeyMD5 property is set.
///
/// true if ServerSideEncryptionCustomerProvidedKey property is set.
internal bool IsSetServerSideEncryptionCustomerProvidedKeyMD5()
{
return !System.String.IsNullOrEmpty(this.serverSideEncryptionCustomerProvidedKeyMD5);
}
///
/// Specifies the Amazon Web Services KMS Encryption Context to use for object encryption.
/// The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
///
/// Specifies the Amazon Web Services KMS Encryption Context to use for object encryption.
/// The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption
/// context key-value pairs. This value is stored as object metadata and automatically
/// gets passed on to Amazon Web Services KMS for future GetObject
or CopyObject
/// operations on this object.
///
///
[AWSProperty(Sensitive=true)]
public string ServerSideEncryptionKeyManagementServiceEncryptionContext
{
get { return this.serverSideEncryptionKeyManagementServiceEncryptionContext; }
set { this.serverSideEncryptionKeyManagementServiceEncryptionContext = value; }
}
///
/// Checks if ServerSideEncryptionKeyManagementServiceEncryptionContext property is set.
///
/// true if ServerSideEncryptionKeyManagementServiceEncryptionContext property is set.
internal bool IsSetServerSideEncryptionKeyManagementServiceEncryptionContext()
{
return !System.String.IsNullOrEmpty(this.serverSideEncryptionKeyManagementServiceEncryptionContext);
}
///
/// The id of the AWS Key Management Service key that Amazon S3 should use to encrypt and decrypt the object.
/// If a key id is not specified, the default key will be used for encryption and decryption.
///
/// If x-amz-server-side-encryption
has a valid value of aws:kms
,
/// this header specifies the ID of the Amazon Web Services Key Management Service (Amazon
/// Web Services KMS) symmetric encryption customer managed key that was used for the
/// object. If you specify x-amz-server-side-encryption:aws:kms
, but do not
/// provide x-amz-server-side-encryption-aws-kms-key-id
, Amazon S3 uses the
/// Amazon Web Services managed key to protect the data. If the KMS key does not exist
/// in the same account issuing the command, you must use the full ARN and not just the
/// ID.
///
///
[AWSProperty(Sensitive=true)]
public string ServerSideEncryptionKeyManagementServiceKeyId
{
get { return this.serverSideEncryptionKeyManagementServiceKeyId; }
set { this.serverSideEncryptionKeyManagementServiceKeyId = value; }
}
///
/// Checks if ServerSideEncryptionKeyManagementServiceKeyId property is set.
///
/// true if ServerSideEncryptionKeyManagementServiceKeyId property is set.
internal bool IsSetServerSideEncryptionKeyManagementServiceKeyId()
{
return !System.String.IsNullOrEmpty(this.serverSideEncryptionKeyManagementServiceKeyId);
}
///
/// Gets and sets the property StorageClass.
///
/// By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects.
/// The STANDARD storage class provides high durability and high availability. Depending
/// on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts
/// only uses the OUTPOSTS Storage Class. For more information, see Storage
/// Classes in the Amazon S3 User Guide.
///
///
public S3StorageClass StorageClass
{
get { return this.storageClass; }
set { this.storageClass = value; }
}
// Check to see if StorageClass property is set
internal bool IsSetStorageClass()
{
return this.storageClass != null;
}
///
/// The tag-set for the object. The tag-set must be encoded as URL Query parameters.
///
public List TagSet
{
get { return this.tagset; }
set { this.tagset = value; }
}
///
/// Checks if Tagging property is set
///
/// true if Tagging is set.
internal bool IsSetTagSet()
{
return (this.tagset != null) && (this.tagset.Count > 0);
}
///
/// Gets and sets the property WebsiteRedirectLocation.
///
/// If the bucket is configured as a website, redirects requests for this object to another
/// object in the same bucket or to an external URL. Amazon S3 stores the value of this
/// header in the object metadata. For information about object metadata, see Object
/// Key and Metadata.
///
///
///
/// In the following example, the request header sets the redirect to an object (anotherPage.html)
/// in the same bucket:
///
///
///
/// x-amz-website-redirect-location: /anotherPage.html
///
///
///
/// In the following example, the request header sets the object redirect to another website:
///
///
///
/// x-amz-website-redirect-location: http://www.example.com/
///
///
///
/// For more information about website hosting in Amazon S3, see Hosting
/// Websites on Amazon S3 and How
/// to Configure Website Page Redirects.
///
///
public string WebsiteRedirectLocation
{
get { return this.websiteRedirectLocation; }
set { this.websiteRedirectLocation = value; }
}
// Check to see if WebsiteRedirectLocation property is set
internal bool IsSetWebsiteRedirectLocation()
{
return this.websiteRedirectLocation != null;
}
///
/// Input stream for the request; content for the request will be read from the stream.
///
public Stream InputStream
{
get { return this.inputStream; }
set { this.inputStream = value; }
}
// Check to see if Body property is set
internal bool IsSetInputStream()
{
return this.inputStream != null;
}
///
///
/// The full path and name to a file to be uploaded.
/// If this is set the request will upload the specified file to S3.
///
///
/// For WinRT and Windows Phone this property must be in the form of "ms-appdata:///local/file.txt".
///
///
public string FilePath
{
get { return this.filePath; }
set { this.filePath = value; }
}
///
/// Text content to be uploaded. Use this property if you want to upload plaintext to S3.
/// The content type will be set to 'text/plain'.
///
public string ContentBody
{
get { return this.contentBody; }
set { this.contentBody = value; }
}
///
/// If this value is set to true then the stream used with this request will be closed when all the content
/// is read from the stream.
/// Default: true.
///
public bool AutoCloseStream
{
get { return this.autoCloseStream; }
set { this.autoCloseStream = value; }
}
///
/// If this value is set to true then the stream will be seeked back to the start before being read for upload.
/// Default: true.
///
public bool AutoResetStreamPosition
{
get { return this.autoResetStreamPosition; }
set { this.autoResetStreamPosition = value; }
}
///
/// WARNING: Setting DisableMD5Stream to true disables the MD5 data integrity check
/// on this request.
/// When true, MD5Stream will not be used in the upload request. This may increase
/// upload performance under high CPU loads. The default value is null. When null, the
/// AWSConfigsS3.DisableMD5Stream property value will be used.
/// MD5Stream, SigV4 payload signing, and HTTPS each provide some data integrity
/// verification. If DisableMD5Stream is true and DisablePayloadSigning is true, then the
/// possibility of data corruption is completely dependant on HTTPS being the only remaining
/// source of data integrity verification.
///
public bool? DisableMD5Stream { get; set; }
///
/// If this value is set to true then a chunked encoding upload will be used for the request.
/// Default: true.
///
public bool UseChunkEncoding
{
get { return this.useChunkEncoding; }
set { this.useChunkEncoding = value; }
}
///
/// WARNING: Setting DisablePayloadSigning to true disables the SigV4 payload signing
/// data integrity check on this request.
/// If using SigV4, the DisablePayloadSigning flag controls if the payload should be
/// signed on a request by request basis. By default this flag is null which will use the
/// default client behavior. The default client behavior is to sign the payload. When
/// DisablePayloadSigning is true, the request will be signed with an UNSIGNED-PAYLOAD value.
/// Setting DisablePayloadSigning to true requires that the request is sent over a HTTPS
/// connection.
/// Under certain circumstances, such as uploading to S3 while using MD5 hashing, it may
/// be desireable to use UNSIGNED-PAYLOAD to decrease signing CPU usage. This flag only applies
/// to Amazon S3 PutObject and UploadPart requests.
/// MD5Stream, SigV4 payload signing, and HTTPS each provide some data integrity
/// verification. If DisableMD5Stream is true and DisablePayloadSigning is true, then the
/// possibility of data corruption is completely dependant on HTTPS being the only remaining
/// source of data integrity verification.
///
public bool? DisablePayloadSigning { get; set; }
///
/// The collection of headers for the request.
///
public HeadersCollection Headers
{
get
{
if (this.headersCollection == null)
this.headersCollection = new HeadersCollection();
return this.headersCollection;
}
internal set
{
this.headersCollection = value;
}
}
///
/// Attach a callback that will be called as data is being sent to the AWS Service.
///
public EventHandler StreamTransferProgress
{
get
{
return ((Amazon.Runtime.Internal.IAmazonWebServiceRequest)this).StreamUploadProgressCallback;
}
set
{
((Amazon.Runtime.Internal.IAmazonWebServiceRequest)this).StreamUploadProgressCallback = value;
}
}
///
/// Gets or sets whether the Content-MD5 header should be calculated for upload.
///
public bool CalculateContentMD5Header
{
get { return this.calculateContentMD5Header; }
set { this.calculateContentMD5Header = value; }
}
///
/// Gets and sets the property ChecksumAlgorithm.
///
/// Indicates the algorithm used to create the checksum for the object. Amazon S3 will
/// fail the request with a 400 error if there is no checksum associated with the object.
/// For more information, see
/// Checking object integrity in the Amazon S3 User Guide.
///
///
///
/// If you provide an individual checksum, Amazon S3 will ignore any provided ChecksumAlgorithm
.
///
///
public ChecksumAlgorithm ChecksumAlgorithm
{
get { return this._checksumAlgorithm; }
set { this._checksumAlgorithm = value; }
}
// Check to see if ChecksumAlgorithm property is set
internal bool IsSetChecksumAlgorithm()
{
return this._checksumAlgorithm != null;
}
///
/// Gets and sets the property ChecksumCRC32.
///
/// This header can be used as a data integrity check to verify that the data received
/// is the same data that was originally sent. This specifies the base64-encoded, 32-bit
/// CRC32 checksum of the object. For more information, see
/// Checking object integrity in the Amazon S3 User Guide.
///
///
public string ChecksumCRC32
{
get { return this._checksumCRC32; }
set { this._checksumCRC32 = value; }
}
// Check to see if ChecksumCRC32 property is set
internal bool IsSetChecksumCRC32()
{
return this._checksumCRC32 != null;
}
///
/// Gets and sets the property ChecksumCRC32C.
///
/// This header can be used as a data integrity check to verify that the data received
/// is the same data that was originally sent. This specifies the base64-encoded, 32-bit
/// CRC32C checksum of the object. For more information, see
/// Checking object integrity in the Amazon S3 User Guide.
///
///
public string ChecksumCRC32C
{
get { return this._checksumCRC32C; }
set { this._checksumCRC32C = value; }
}
// Check to see if ChecksumCRC32C property is set
internal bool IsSetChecksumCRC32C()
{
return this._checksumCRC32C != null;
}
///
/// Gets and sets the property ChecksumSHA1.
///
/// This header can be used as a data integrity check to verify that the data received
/// is the same data that was originally sent. This specifies the base64-encoded, 160-bit
/// SHA-1 digest of the object. For more information, see
/// Checking object integrity in the Amazon S3 User Guide.
///
///
public string ChecksumSHA1
{
get { return this._checksumSHA1; }
set { this._checksumSHA1 = value; }
}
// Check to see if ChecksumSHA1 property is set
internal bool IsSetChecksumSHA1()
{
return this._checksumSHA1 != null;
}
///
/// Gets and sets the property ChecksumSHA256.
///
/// This header can be used as a data integrity check to verify that the data received
/// is the same data that was originally sent. This specifies the base64-encoded, 256-bit
/// SHA-256 digest of the object. For more information, see
/// Checking object integrity in the Amazon S3 User Guide.
///
///
public string ChecksumSHA256
{
get { return this._checksumSHA256; }
set { this._checksumSHA256 = value; }
}
// Check to see if ChecksumSHA256 property is set
internal bool IsSetChecksumSHA256()
{
return this._checksumSHA256 != null;
}
}
}