Эквивалент этой функции в Windows Azure называется Shared Access Signature. Media Services поддерживает создание SAS Origin Locators.
Вы можете ознакомиться с официальной документацией по адресу how to create SAS Locator with .NET SDK.
Или вы можете проверить my project on GitHub и Locators implementation in particular
образец кода для создания SAS Locator для конкретного актива следующим образом:
public string GetSasLocator(IAsset asset)
{
// Create an 1-day readonly access policy.
IAccessPolicy streamingPolicy = this.MediaService.MediaContext.AccessPolicies.Create("Full Access Policy",
TimeSpan.FromMinutes(20),
AccessPermissions.List | AccessPermissions.Read | AccessPermissions.Read);
// Create the origin locator. Set the start time as 5 minutes
// before the present so that the locator can be accessed immediately
// if there is clock skew between the client and server.
ILocator sasLocator =
(from l in this.MediaService.MediaContext.Locators
where l.Type == LocatorType.Sas && l.AssetId.Equals(asset.Id)
select l).FirstOrDefault();
if (sasLocator != null && sasLocator.ExpirationDateTime < DateTime.UtcNow)
{
sasLocator.Delete();
sasLocator = null;
}
if (sasLocator == null)
{
sasLocator = this.MediaService.MediaContext
.Locators.CreateSasLocator(asset,
streamingPolicy,
DateTime.UtcNow.AddMinutes(-5));
}
// Create a full URL to the manifest file. Use this for playback
// in streaming media clients.
string sasUrl = sasLocator.Path;
// Display the full URL to the streaming manifest file.
Console.WriteLine("URL to for blob upload: ");
Console.WriteLine(sasUrl);
return sasUrl;
}
Отлично, спасибо, я буду смотреть в немного. Мое понимание, однако, заключалось в том, что локаторы SAS предназначены для контента, не являющегося адаптивной битовой скоростью. HLS и Smooth Streaming, например, требуют Origin Locators (должно было помещать это в мой первоначальный пост). Можете ли вы использовать этот подход с HLS или Smooth Streaming? – user483044
Еще одно замечание: мне кажется, что ваш код (на github и здесь) охватывает часть времени для жизни (expiration), но она не совсем покрывает зелье безопасности. Вышеупомянутая функция URL-адреса гарантирует, что потребители любого URL-адреса должны встряхнуть сертификат/подпись перед загрузкой URL-адреса. Эта часть также должна быть поддержана. – user483044