public S3WebRequest Clone(string key)
        {
            var clone = new S3WebRequest(RequestUri, log, S3Client, s3BucketsOptions);

            clone.Key = key;
            return(clone);
        }
        public WebRequest Create(Uri uri)
        {
            IAmazonS3   client      = null;
            AmazonS3Uri amazonS3Uri = null;

            // Create client from config
            AmazonS3Uri.TryParseAmazonS3Uri(uri, out amazonS3Uri);
            AWSOptions awsOptions = options;

            if (options == null)
            {
                awsOptions = new AWSOptions();
            }
            client = awsOptions.CreateServiceClient <IAmazonS3>();
            if (amazonS3Uri == null || amazonS3Uri.IsPathStyle || S3UriParser.IsKnownScheme(uri.Scheme))
            {
                (client.Config as AmazonS3Config).ForcePathStyle = true;
            }


            S3WebRequest s3WebRequest = new S3WebRequest(uri, logger, (AmazonS3Client)client, s3BucketsConfiguration);

            return(s3WebRequest);
        }