Windows Azure Media Services: SDK 2.0 for .NET (Preview) のクリーンアップサンプル

こちらにアナウンスが出ていますが、クライアント側の.NET SDK2.0になり、幾つか変更点もあります。

  • 1.0 Previewはアンインストールを
  • ファイルアップロードの手順が大きく変更になっています。Asset.Createは単なる空の器を作成するだけですので、複数の追加の手順が必要です。
  • ファイルアップロード経過を取得する、イベントハンドラは書き直しです。

Just Released – Windows Azure Media Services SDK 2.0 for .NET (Preview) on NuGet:

http://social.msdn.microsoft.com/Forums/en-US/MediaServices/thread/7417b76a-d670-4b2c-8024-0e1c2ce4b803

評価時点で役に立つのが、Asset / Locator / Policy / Job などを全て削除してくれるクリーンアップのコードです。Blob Storageを使っていますので、うまく削除できないようですと課金されたままになってしまいますので。

まだ SDK2.0 のサンプルコードが提供されていませんが、以下をサンプルとしてご利用ください。

基本は AccessPolicy –> Job –> Asset の順番で削除すると確実にできます。

            Console.WriteLine("Access Policy 削除中...");

            DeleteAllAccessPolicies();

            Console.WriteLine("Job 削除中...");

            DeleteAllJob();

            Console.WriteLine("Asset 削除中...");

            DeleteAllAssets();

  • AccessPolicyの削除:

Entiryタイプのものは、今回 Delete() / DeleteAsync() が追加されていますので、直感的に・・・

        static void DeleteAllAccessPolicies()

        {

            foreach (IAccessPolicy policy in _context.AccessPolicies)

                try

                {

                    policy.Delete();

                }

                catch (Exception e)

                {

                    //

                }

        }

  • Job の削除

こちらは以前のサンプルのままで動きます。

http://code.msdn.microsoft.com/Windows-Azure-Media-040435f8

  • そしてAsset

        static void DeleteAllAssets()         {             foreach (IAsset asset in _context.Assets)             {

                Exception ex = null;                 // Use a try/catch block to handle deletes.                  try                 {

                    // You must revoke all locators to delete an asset.  foreach (ILocator locator in asset.Locators)

                    {

                        locator.Delete();

                    }

                    foreach (IContentKey contentKey in asset.ContentKeys)

                    {

                        

                        asset.ContentKeys.Remove(contentKey);

                        if (asset.ContentKeys.Count == 0) break;

 

                    }

 

                    asset.Delete();

                    Console.WriteLine(" Deleted Assets.");                 }

 

                catch (InvalidOperationException invalidEx)                 {                     ex = invalidEx;                 }                 catch (ArgumentNullException nullEx)                 {                     ex = nullEx;                 }                 // If there's an exception, log or notify as needed.                 if (ex != null)                 {                     // Log or notify of assets that cannot be deleted.                      Console.WriteLine(" The current asset cannot be deleted.");                     if (asset != null)                         Console.WriteLine(" Asset Id: " + asset.Id);                     Console.WriteLine(" Reason asset could not be deleted: ");                     Console.Write(ex.Message);                 }             }         }

いま暫し、お待ちください・・・

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中