/* * 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 { /// <summary> /// Container for the parameters to the PutObject operation. /// <para>Adds an object to a bucket.</para> /// </summary> public partial class PutObjectRequest : PutWithACLRequest { /// <summary> /// Overrides the default request timeout value. /// </summary> /// <remarks> /// <para> /// If the value is set, the value is assigned to the Timeout property of the HTTPWebRequest/HttpClient object used /// to send requests. /// </para> /// <para> /// Please specify a timeout value only if the operation will not complete within the default intervals /// specified for an HttpWebRequest/HttpClient. /// </para> /// </remarks> /// <exception cref="System.ArgumentNullException">The timeout specified is null.</exception> /// <exception cref="System.ArgumentOutOfRangeException">The timeout specified is less than or equal to zero and is not Infinite.</exception> /// <seealso cref="P:System.Net.HttpWebRequest.Timeout"/> /// <seealso cref="P:System.Net.Http.HttpClient.Timeout"/> public TimeSpan? Timeout { get { return this.TimeoutInternal; } set { this.TimeoutInternal = value; } } /// <summary> /// Overrides the default ReadWriteTimeout value. /// </summary> /// <remarks> /// <para> /// If the value is set, the value is assigned to the ReadWriteTimeout property of the HTTPWebRequest/WebRequestHandler object used /// to send requests. /// </para> /// <exception cref="System.ArgumentNullException">The timeout specified is null.</exception> /// <exception cref="System.ArgumentOutOfRangeException">The timeout specified is less than or equal to zero and is not Infinite.</exception> /// </remarks> /// <seealso cref="P:System.Net.HttpWebRequest.ReadWriteTimeout"/> /// <seealso cref="P:System.Net.Http.WebRequestHandler.ReadWriteTimeout"/> public TimeSpan? ReadWriteTimeout { get { return this.ReadWriteTimeoutInternal; } set { this.ReadWriteTimeoutInternal = value; } } internal void SetupForFilePath() { this.InputStream = new FileStream(this.FilePath, FileMode.Open, FileAccess.Read, FileShare.Read); if (string.IsNullOrEmpty(this.Key)) { this.Key = Path.GetFileName(this.FilePath); } } } }