Использование BlobRequest.CopyFrom завершается с ошибкой 404 Not Found - PullRequest
0 голосов
/ 04 июля 2011

Надеюсь, вы можете помочь.

Я пытаюсь скопировать большой двоичный объект, используя пространство имен протокола вместе с подписью общего доступа, но WebResponse всегда выдает ошибку 404 Not Found.Я успешно использовал методы Get / Post / Delete / List (где 404 было бы выброшено, если бы не было разрешений), но я не могу найти ответ здесь.

Вот некоторый простой код, который я использую:

Uri uriFrom = new Uri("file://mymachine/myfile.txt");
Uri uriTo   = new Uri("file://mymachine/myfile1.txt");

//get shared access signature - set all permissions for now
uriTo = GetSharedAccessSignature(uriTo, SharedAccessPermissions.Write | 
SharedAccessPermissions.Read | SharedAccessPermissions.List);

//NOTE: This returns my uriTo object in the following format:
//http://mystoragespace.blob.core.windows.net/mycontainer/steve1.txt?se=2011-07-04T12:17:18Z&sr=b&sp=rwdl&sig=sxhGBkbDJpe9qn5d9AB7/d2LK1aun/2s5Bq8LAy8mis=

//get the account name
string accountName = uriTo.Host.Replace(".blob.core.windows.net", string.Empty);

//build the canonical string
StringBuilder canonicalName = new StringBuilder();
canonicalName.AppendFormat(System.Globalization.CultureInfo.InvariantCulture,
            "/{0}/mycontainer{1}", accountName, uriFrom.AbsolutePath);

//NOTE: my canonical string is now "/mystoragespace/mycontainer/myfile.txt"

//get the request
var request = BlobRequest.CopyFrom(uriTo, 300, canonicalName.ToString(),
            null, ConditionHeaderKind.None, null, null);

request.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials;

//perform the copy operation
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    //do nothing. the file has been copied
}

Итак, у моего uriTo, похоже, есть соответствующие разрешения (я пробовал различные комбинации), и каноническая строка, похоже, имеет правильную исходную строку.Я не использую функцию снимка.Прокси не проблема, так как я успешно использовал другие методы.

Надеюсь, кто-то может помочь ...

С уважением, Стив

1 Ответ

0 голосов
/ 04 июля 2011

С Создание подписи общего доступа :

В следующей таблице подробно показано, какие операции разрешены для ресурса с заданным набором разрешений.

...

Создание или обновление содержимого, списка блоков, свойств и метаданных указанного большого двоичного объекта. Обратите внимание, что копирование BLOB-объектов не поддерживается.

...