Я создал токен SAS, который, кажется, работает, если я обращаюсь к частному контейнеру с URL: https://mystorage.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2015-12-11&sr=c&sig=11111111111123%3D&se=2016-07-29T11%3A32%3A28Z&sp=cwl
Код:
SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy()
{
Permissions = SharedAccessBlobPermissions.Create |
SharedAccessBlobPermissions.Write |
SharedAccessBlobPermissions.List |
SharedAccessBlobPermissions.Read,
SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(15)
};
var blobStorage = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobStorage.GetContainerReference(blobContainerName);
string sasContainerToken = container.GetSharedAccessSignature(policy);
Но когда я использую этот sasContainerToken в AzCopy (из командного файла), я получаю следующую ошибку:
[2016-07-29 14:00:38][ERROR] The syntax of the command is incorrect.
Invalid SAS token in parameter "DestSAS". Value of "se" is invalid in SAS token.
Проблемы, похоже, связаны со временем, которое экранируется с помощью «% 3A», изменение этого значения на «:» устраняет ошибку, но теперь я не авторизован из-за неправильного SAS.
Любые идеи?
ОБНОВЛЕНИЕ: создание учетной записи SAS с портала Azure, похоже, решает ошибку AzCopy, но по-прежнему доступ запрещен из отдельных загрузок больших двоичных объектов
AzCopy
/Source:C:\temp\myfiles
/Dest:"https://mystorage.blob.core.windows.net/mycontainer"
/DestSas:"?sv=2015-04-05&ss=bfqt&srt=sco&sp=rwdlacup&se=2016-07-30T21:11:31Z&st=2016-07-28T13:11:31Z&spr=https&sig=p%2FlCgbgMRU7lH7111111YyxEDE21rZWFo4%3D"
Изменение / DestSas на / DestKey (с действующим ключом) работает, но дает слишком много разрешений