2013-04-19 3 views
0

Я пытаюсь найти эквивалентную функцию в службах Windows Azure медиа следующей функции S3: http://www.bucketexplorer.com/documentation/amazon-s3--how-to-generate-url-for-amazon-s3-file.html#signedurlПодписание URL, в службах Windows Azure СМИ

Я слышал, что подписание URLs, как это может быть достигнуто с помощью S3, а CDN-х (например, Akamai).

2 вопроса.

1) Есть ли у кого-нибудь рекомендации по внедрению подписанного URL-адреса в WAMS?

2) Знает ли кто-нибудь, до какой степени Azure подключается к другим CDN, например, Akamai?

Заранее спасибо.

ответ

0

Эквивалент этой функции в 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; 
} 
+0

Отлично, спасибо, я буду смотреть в немного. Мое понимание, однако, заключалось в том, что локаторы SAS предназначены для контента, не являющегося адаптивной битовой скоростью. HLS и Smooth Streaming, например, требуют Origin Locators (должно было помещать это в мой первоначальный пост). Можете ли вы использовать этот подход с HLS или Smooth Streaming? – user483044

+0

Еще одно замечание: мне кажется, что ваш код (на github и здесь) охватывает часть времени для жизни (expiration), но она не совсем покрывает зелье безопасности. Вышеупомянутая функция URL-адреса гарантирует, что потребители любого URL-адреса должны встряхнуть сертификат/подпись перед загрузкой URL-адреса. Эта часть также должна быть поддержана. – user483044

Смежные вопросы