TIPS: Azure Media Servicesでの利用アカウントの全アセット一覧の取得

Azure Media Servicesには一度に返却できるアセット情報(コレクション)の数に1000という制限があることは意外と知られていない。Azure Media Servicesでアセット一覧取得となるとほとんどの方がAzure公式ドキュメントにあるようにCloudMediaContextインスタンスのAssets(IAssetのリスト)を単純にループでまわすような記述をしているのではないかと推測するがそれだと後々問題になってくる。既に1000件以上のアセットがアップされている方は当然ながら、アセット数が少ない人についても下記のように1000件ずつもしくはそれ以下の数ずつAzure Media Servicesより取得してIAssetリストをループでまわすように実装しておいたほうが安全かと。

MediaServicesCredentials credentials = new MediaServicesCredentials(
                                    _accountName, _accountKey);
CloudMediaContext _context = new CloudMediaContext(credentials);

int selectlimit = 1000;
int offset = 0;
int selectposition = 0;
Console.WriteLine("Assets Total Count:" + _context.Assets.Count());
while (true)
{
    foreach (IAsset asset in _context.Assets.Skip(offset).Take(selectlimit))
    {
        selectposition++;
        Console.WriteLine("Asset ID: " + asset.Id);
        Console.WriteLine("Asset Name: " + asset.Name);
        Console.WriteLine("Asset LastModified: " + asset.LastModified);
    }
    if (selectposition == selectlimit)
    {
        offset += selectlimit;
        selectposition = 0;
    }
    else
    {
        break;
    }
}

サンプルコード
https://github.com/yokawasa/azure-samples/tree/master/ams-list-assets

76 comments

  1. Pingback: web pns
  2. Pingback: Pune escorts
  3. Pingback: cmovieshd
  4. Pingback: Malerhose
  5. Pingback: __p11
  6. Pingback: hombre deporte
  7. Pingback: Link Building
  8. Pingback: continue reading
  9. Pingback: go here
  10. Pingback: i provide a link
  11. Pingback: tutorialcup
  12. Pingback: view more
  13. Pingback: go to the page
  14. Pingback: go to the source
  15. Pingback: follow the link
  16. Pingback: address
  17. Pingback: Predrag Timotic
  18. Pingback: Kolkata Escorts
  19. Pingback: Goa Escorts
  20. Pingback: visit web page
  21. Pingback: click here
  22. Pingback: click to see more
  23. Pingback: read
  24. Pingback: notehub.org
  25. Pingback: notehub.org
  26. Pingback: read further

Leave a Reply

Your email address will not be published. Required fields are marked *