Предоставить доступ к папке в контейнере BLOB-объектов Azure - PullRequest
0 голосов
/ 20 сентября 2018

Я могу ограничить доступ к контейнеру больших двоичных объектов или к определенному файлу с помощью токена SAS, но я не могу сгенерировать токен SAS на уровне папок в хранилище BLOB-объектов Azure.

Есть ли способпредоставить доступ только к определенной папке в хранилище BLOB-объектов Azure.(У нас есть много папок в контейнере BLOB-объектов, нам нужно предоставить клиенту доступ на чтение к одной папке)

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Здесь вы можете использовать CloudAppendBlob, чтобы добавить URL, указав имя папки, но я не уверен в имени файла, а затем сгенерировать SAS на основе учетных данных.Я надеюсь, что это будет работать.

// Create the CloudBlobClient that represents the Blob storage endpoint for the storage account. 
CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();

// Create a container called 'path' and append a GUID value to it to make the name unique.  
 cloudBlobContainer = cloudBlobClient.GetContainerReference(containerName);

CloudAppendBlob appBlob = cloudBlobContainer.GetAppendBlobReference(folder/file);


SharedAccessBlobPolicy adHocSAS = new SharedAccessBlobPolicy()
      {
       // When the start time for the SAS is omitted, the start time is assumed to be the time when the storage service receives the request.
       // Omitting the start time for a SAS that is effective immediately helps to avoid clock skew.
        SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24),
        Permissions = SharedAccessBlobPermissions.Read | SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.Create
       };

 var uri = appBlob.GetSharedAccessSignature(adHocSAS);
0 голосов
/ 20 сентября 2018

Есть ли способ предоставить доступ только к определенной папке в хранилище BLOB-объектов Azure.

На сегодняшний день, нет. Как вы упоминали, токен SAS можно использовать для ограничениядоступ к целому контейнеру BLOB-объекта или отдельному BLOB-объектуЭто связано с тем, что папка в хранилище BLOB-объектов является виртуальной, а не реальной папкой.

...