Я использую С# для создания подписей общего доступа для новых ресурсов (пользователь должен иметь права на создание для создания новых ресурсов в моей учетной записи хранения). Документация MS устарела, и я не могу заставить ее работать, используя различные сообщения в блогах, которые я просмотрел.
Прямо сейчас мой код выглядит так:
public static string GetBlobSharedAccessSignitureUrl(CloudBlobContainer container,string nameOfBlobToCreateSaSfor)
{
var blob = container.GetBlockBlobReference(nameOfBlobToCreateSaSfor);
var policy = new SharedAccessBlobPolicy
{
SharedAccessExpiryTime = DateTime.Now.AddHours(1),
Permissions = SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.Read
};
container.GetSharedAccessSignature(policy);
string sas = blob.GetSharedAccessSignature(policy);
return blob.Uri.AbsoluteUri + sas;
}
и возвращенный URL-адрес (для моей локальной машины) выглядит так (что кажется правильным)
http://127.0.0.1:10000/devstoreaccount1/photos/photos_4.jpg?sv=2012-02-12&se=2013-01-20T10%3A13%3A17Z&sr=b&sp=rw&sig=xxx
Я запустил симулятор хранилища Azure и через fiddler попытался выполнить POST на этот URL-адрес (также попробовал PUT)
Я получаю ошибки (404 или 400, зависит от другого кода для этой функции, который я пробовал)
Нужно ли мне делать что-то еще? (В старых примерах я видел, как они заранее создавали ресурс в этом месте, что я тоже пробовал, но тоже не работал...)
Azure SDK версии 2.0, поэтому сообщения в блогах MS (и другие руководства) до октября 2012 г. не работают (также согласно блогу разработчиков MS http://blogs.msdn.com/b/windowsazurestorage/archive/2012/).29/10/windows-azure-storage-client-library-2-0-breaking-changes-amp-migration-guide.aspx)
любая помощь будет оценена