Получить URI подписи общего доступа для ВСЕХ больших двоичных объектов в лазурном контейнере больших двоичных объектов?

Я создаю подписи общего доступа для больших двоичных объектов внутри лазурного контейнера больших двоичных объектов, например:

        string sasToken = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy()
        {
            Permissions = SharedAccessBlobPermissions.Read,
            SharedAccessExpiryTime = DateTimeOffset.UtcNow.AddMinutes(30)
        });
        return new Uri(blob.Uri, sasToken).AbsoluteUri;

Это возвращает строку URI, которую мы можем проверить, чтобы загрузить отдельный большой двоичный объект. Отлично, работает.

Однако мне нужно потенциально сгенерировать сотни этих общих подписей доступа для множества разных BLOB-объектов внутри контейнера. Кажется очень неэффективным перебирать каждый blob и каждый раз делать этот вызов индивидуально.

Я знаю, что могу позвонить:

        container.GetSharedAccessSignature()

аналогичным образом, но как использовать токен SAS контейнера для распределения токенов SAS для каждого отдельного большого двоичного объекта внутри контейнера?


person kdeez    schedule 23.02.2021    source источник
comment
Кстати, похоже, что вы используете старую версию: v11 версию azure storage sdk. Теперь мы предлагаем вам использовать последнюю версию v12 и следовать этот документ.   -  person Ivan Yang    schedule 23.02.2021
comment
Спасибо за внимание, я переключусь как можно скорее. Отличный помощник, мой друг.   -  person kdeez    schedule 23.02.2021


Ответы (1)


Да, ты можешь.

После того, как вы сгенерируете токен sas контейнера, он также может работать для каждого большого двоичного объекта внутри него. Вам просто нужно добавить имя blob-объекта в URL-адрес, как показано ниже:

https://xxxxx/container/blob?container_sastoken.

person Ivan Yang    schedule 23.02.2021