Как создать URL-адрес общего доступа для моего BLOB-файла в Azure Data Lake Gen2 в csharp - PullRequest
0 голосов
/ 09 апреля 2020

Я использую пакет nuget Azure .Storage.Files.DataLake для записи и добавления файла в мою Azure учетную запись хранения, которая включена для Data Lake Gen2 (включая иерархию).

Однако я, похоже, не нашел, как сгенерировать SAS-URL для доступа к указанному BLOB-объекту c без аутентификации пользователя. Возможно ли это сделать с пакетом, или я должен вернуться к операциям REST для этого?

Спасибо за любые идеи

1 Ответ

0 голосов
/ 09 апреля 2020

Кажется, мне просто нужно было перейти на страницу GitHub, и есть хороший пример того, как это сделать в модульных тестах.

Я скопировал постоянную ссылку на указанную c часть здесь: https://github.com/Azure/azure-sdk-for-net/blob/89955a90641742a2cdb0acd924f90d02b1be34ec/sdk/storage/Azure.Storage.Files.DataLake/samples/Sample02_Auth.cs#L126

AccountSasBuilder sas = new AccountSasBuilder
{
    Protocol = SasProtocol.None,
    Services = AccountSasServices.Blobs,
    ResourceTypes = AccountSasResourceTypes.All,
    StartsOn = DateTimeOffset.UtcNow.AddHours(-1),
    ExpiresOn = DateTimeOffset.UtcNow.AddHours(1),
    IPRange = new SasIPRange(IPAddress.None, IPAddress.None)
};
// Allow read access
sas.SetPermissions(AccountSasPermissions.List);

// Create a SharedKeyCredential that we can use to sign the SAS token
StorageSharedKeyCredential credential = new StorageSharedKeyCredential(StorageAccountName, StorageAccountKey);

// Build a SAS URI
UriBuilder sasUri = new UriBuilder(StorageAccountBlobUri);
sasUri.Query = sas.ToSasQueryParameters(credential).ToString();
...