From 90b5ddcd9619659a345e6f16dabe37ba14ffa80b Mon Sep 17 00:00:00 2001 From: Adnan Smajlovic Date: Wed, 8 May 2013 17:12:36 +0100 Subject: [PATCH 1/2] Content-Length in copy PUTs must be zero --- .../Providers/Rackspace/CloudFilesProvider.cs | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/corelib/Providers/Rackspace/CloudFilesProvider.cs b/src/corelib/Providers/Rackspace/CloudFilesProvider.cs index 36dfe1f27..e3c6cced3 100644 --- a/src/corelib/Providers/Rackspace/CloudFilesProvider.cs +++ b/src/corelib/Providers/Rackspace/CloudFilesProvider.cs @@ -659,22 +659,12 @@ public ObjectStore CopyObject(string sourceContainer, string sourceObjectName, s _cloudFilesValidator.ValidateContainerName(destinationContainer); _cloudFilesValidator.ValidateObjectName(destinationObjectName); - if (headers != null) - { - if (string.IsNullOrWhiteSpace(headers.FirstOrDefault(x => x.Key.Equals(ContentLength, StringComparison.OrdinalIgnoreCase)).Value)) - { - var contentLength = GetObjectContentLength(identity, sourceContainer, sourceObjectName, region, useInternalUrl); - headers.Add(ContentLength, contentLength); - } - } - else + if (headers == null) { headers = new Dictionary(); - var contentLength = GetObjectContentLength(identity, sourceContainer, sourceObjectName, region, useInternalUrl); - headers.Add(ContentLength, contentLength); - } + headers.Add(ContentLength, 0) headers.Add(CopyFrom, string.Format("{0}/{1}", sourceContainer, sourceObjectName)); var urlPath = new Uri(string.Format("{0}/{1}/{2}", GetServiceEndpointCloudFiles(identity, region, useInternalUrl), _encodeDecodeProvider.UrlEncode(destinationContainer), _encodeDecodeProvider.UrlEncode(destinationObjectName))); From 26b6cb754868f97168af236c3785f44f29f92cca Mon Sep 17 00:00:00 2001 From: Adnan Smajlovic Date: Wed, 8 May 2013 19:41:53 +0200 Subject: [PATCH 2/2] Syntax error on Content-Length addition corrected (missing ;) --- src/corelib/Providers/Rackspace/CloudFilesProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/Providers/Rackspace/CloudFilesProvider.cs b/src/corelib/Providers/Rackspace/CloudFilesProvider.cs index e3c6cced3..6b5aec9bf 100644 --- a/src/corelib/Providers/Rackspace/CloudFilesProvider.cs +++ b/src/corelib/Providers/Rackspace/CloudFilesProvider.cs @@ -664,7 +664,7 @@ public ObjectStore CopyObject(string sourceContainer, string sourceObjectName, s headers = new Dictionary(); } - headers.Add(ContentLength, 0) + headers.Add(ContentLength, 0); headers.Add(CopyFrom, string.Format("{0}/{1}", sourceContainer, sourceObjectName)); var urlPath = new Uri(string.Format("{0}/{1}/{2}", GetServiceEndpointCloudFiles(identity, region, useInternalUrl), _encodeDecodeProvider.UrlEncode(destinationContainer), _encodeDecodeProvider.UrlEncode(destinationObjectName)));