Я пытаюсь предоставить доступ только для чтения для своих капель с помощью веб-службы. У веб-службы есть метод, который принимает информацию о блоке и контейнере, а затем возвращает URL-адрес с общей подписью доступа, который пользователь может использовать для доступа к блобу. Поскольку эти изображения (капли) кэшируются на телефоне, я бы хотел, чтобы сигнатуры были действительны в течение 1 дня.SharedAccessSignature Azure
Я использую следующий код:
var blobClient = GetBlobClient();
var container = blobClient.GetContainerReference(containerName);
if (container != null)
{
container.CreateIfNotExist();
}
var policy = new SharedAccessPolicy()
{
SharedAccessStartTime = DateTime.Now,
Permissions = SharedAccessPermissions.Read,
SharedAccessExpiryTime = DateTime.Now.AddDays(days)
};
if (permissions.Contains("w"))
{
policy.Permissions = policy.Permissions | SharedAccessPermissions.Write;
policy.SharedAccessExpiryTime = DateTime.Now.AddMinutes(10);
}
//The shared access policy provides read/write access to the container for 10 hours.
BlobContainerPermissions containerPerms = new BlobContainerPermissions();
// The public access setting explicitly specifies that the container is private,
// so that it can't be accessed anonymously.
containerPerms.PublicAccess = BlobContainerPublicAccessType.Off;
containerPerms.SharedAccessPolicies.Clear();
containerPerms.SharedAccessPolicies.Add("mypolicy", policy);
// Set the permission policy on the container.
container.SetPermissions(containerPerms);
var blob = container.GetBlobReference(blobName);
// Get the shared access signature to share with users.
var blobPolicy = new SharedAccessPolicy();
blobPolicy.SharedAccessExpiryTime = DateTime.Now.AddDays(days);
blobPolicy.Permissions = SharedAccessPermissions.Read;
string sas = blob.GetSharedAccessSignature(blobPolicy, "mypolicy");
return sas;
Каждый раз, когда я пытаюсь использовать этот код, я получаю следующее сообщение об ошибке: Подпись не соответствует. Строка знак используется был г 2012-01-03T08: 38: 52Z /myContainer/12100/12409/29cae1b6-2955-4a33-ab27-ff99f0bb6470_m.jpg MYPOLICY
Может кто-нибудь, пожалуйста, руководство меня с этим?