セールス: 1-800-867-1380

Media Services REST API による資産の取り込み

更新日: 2014年8月

REST API を使用して Microsoft Azure のメディア サービス に Asset を取り込むには、複数の手順が必要です。Asset の暗号化など特定のアクションに対して、Media Services とやり取りする前に複数の手順を実行します。ただし、Asset 自体の作成などほとんどのアクションは簡単で、REST の原則と OData v3 (さらにコード例の場合は JSON) の基本的な知識が必要なだけです。

Asset の取り込みの基本的なワークフローは、次のセクションに分けて説明します。

Asset の一括取り込みの詳細については、「REST API での資産の一括インジェスト」を参照してください。

noteメモ
Media Services は、ストリーミング コンテンツ (たとえば http://{WAMSAccount}.origin.mediaservices.windows.net/{GUID}/{IAssetFile.Name}/streamingParameters.) の URL を構築するときに IAssetFile.Name プロパティの値を使用します。そのため、パーセントエンコードは使用できません。Name プロパティの値には、パーセントエンコード予約文字: !*'();:@&=+$,/?%#[]" は使用できません。また、ファイル名拡張子には "." を 1 つのみ使用できます。

Important重要
Media Services REST API を使用する場合、次の点に注意してください。

  • Media Services でエンティティにアクセスする場合、HTTP 要求に固有のヘッダー フィールドと値を設定する必要があります。詳細については、「Media Services REST API 開発のセットアップ」を参照してください。

  • https://media.windows.net への接続に成功すると、別の Media Services URI を指定する 301 リダイレクトを受け取ります。続いて、新しい URI への呼び出しを行う必要があります。

    詳細については、「Media Services REST API による Media Services への接続」を参照してください。

資産とは、ビデオ、オーディオ、画像、サムネイル コレクション、テキスト追跡、閉じたキャプション ファイルなど、Media Services 内のオブジェクトの複数のタイプまたはセットのためのコンテナーです。REST API 内で Asset を作成するには、Media Services に POST 要求を送信し、要求の本文内にプロパティ情報を配置する必要があります。

次の例では、表示名を "NewJSONAsset" に設定して資産を作成する方法を示します。

POST https://media.windows.net/API/Assets HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1335602357&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=XQs5T%2fEfdO39%2f0Z9%2fBBkA12%2bbUUEY21YyefWXuRYZlY%3d
Host: media.windows.net
Content-Length: 27
Expect: 100-continue

{ "Name" : "NewJSONAsset" }

処理が正常に終了すると、次の応答が返されます。

HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 1353
Content-Type: application/json;odata=verbose;charset=utf-8
Location: https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3Aaa5bfdd9-900a-431d-aea7-fffb0b24f36b')
Server: Microsoft-IIS/7.5
x-ms-request-id: 7739638a-da3a-4a6e-ad51-ea0bf87f02ad
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 27 Apr 2012 22:39:18 GMT

{"d":{"__metadata":{"id":"https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3Aaa5bfdd9-900a-431d-aea7-fffb0b24f36b')","uri":"https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3Aaa5bfdd9-900a-431d-aea7-fffb0b24f36b')","type":"Microsoft.Cloud.Media.Vod.Rest.Data.Models.Asset","actions":{"https://media.windows.net/api/$metadata#WindowsAzureMediaServices.Publish":[{"title":"Publish","target":"https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3Aaa5bfdd9-900a-431d-aea7-fffb0b24f36b')/Publish"}]}},"Locators":{"__deferred":{"uri":"https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3Aaa5bfdd9-900a-431d-aea7-fffb0b24f36b')/Locators"}},"ContentKeys":{"__deferred":{"uri":"https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3Aaa5bfdd9-900a-431d-aea7-fffb0b24f36b')/ContentKeys"}},"Files":{"__deferred":{"uri":"https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3Aaa5bfdd9-900a-431d-aea7-fffb0b24f36b')/Files"}},"ParentAssets":{"__deferred":{"uri":"https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3Aaa5bfdd9-900a-431d-aea7-fffb0b24f36b')/ParentAssets"}},"Id":"nb:cid:UUID:aa5bfdd9-900a-431d-aea7-fffb0b24f36b","State":0,"Created":"\/Date(1335566358610)\/","LastModified":"\/Date(1335566358610)\/","AlternateId":null,"Name":"NewJSONAsset","Options":0}}

Asset エンティティのプロパティと演算子の詳細については、「Asset」を参照してください。

資産の暗号化は省略可能な手順です。ただし、資産を暗号化することは推奨されています。Media Services で使用できるのは、資産のファイルのストレージの暗号化、または DRM で保護されたファイルを管理するための共通暗号化です (たとえば PlayReady)。また、機密性の高いプリセット情報が含まれる可能性のあるエンコード構成データの暗号化のために構成暗号化を使用することもできます。各タイプの暗号化には、AES コンテンツ キー、コンテンツ キーの暗号化に使用される X.509 証明書、および各テンティティ ( Asset、ContentKey、File) での対応するプロパティの設定が必要です。コンテンツ キーの長さは、コンテンツ キーのタイプによって異なります。ストレージおよび構成の暗号化には 256 ビット キーが必要であり、共通暗号化には 128 ビット キーが必要です。

BLOB ストレージにアップロードするファイルを暗号化する場合の一般的な手順は次のとおりです。

  1. 256 ビット (32 バイト) AES キーをランダムに生成します。これは資産のコンテンツ キーになります。つまり、資産に関連付けられたすべてのファイルは展開時に同じコンテンツ キーを使用する必要があります。

  2. ファイルごとに 64 ビットの初期化ベクトル (IV) 値をランダムに生成し、Asset 内の各ファイルで IV 値が一意であることを確認します。

  3. アップロード (取り込み) 後に資産ファイルを展開する場合は、Options プロパティを "1" に設定して Asset エンティティを作成します。共通暗号化を使用している場合は、Options を "2" に設定します。

    noteメモ
    この手順は、手順 1. と 2. を実行する前または後に行うことができます。

  4. GetProtectionKeyId メソッドと GetProtectionKey メソッドを呼び出して、コンテンツ キーの暗号化に使用される適切な X.509 証明書を取得します。

  5. X.509 証明書の公開キーでコンテンツ キーを暗号化します。

    また、キー識別子とコンテンツ キーを使用して計算されたチェックサム値 (PlayReady AES キー チェックサム アルゴリズムに基づく) を作成します。詳細については、ここで取得できる『PlayReady Header Object (PlayReady ヘッダー オブジェクト)』ドキュメントの「PlayReady AES Key Checksum Algorithm (PlayReady AES キー チェックサム アルゴリズム)」セクションを参照してください。

    次の .NET の例では、キー識別子の GUID の部分とクリアなコンテンツ キーを使用してチェックサムを計算します。

    public static string CalculateChecksum(byte[] contentKey, Guid keyId)
    {
        byte[] array = null;
        using (AesCryptoServiceProvider aesCryptoServiceProvider = new AesCryptoServiceProvider())
        {
            aesCryptoServiceProvider.Mode = CipherMode.ECB;
            aesCryptoServiceProvider.Key = contentKey;
            aesCryptoServiceProvider.Padding = PaddingMode.None;
            ICryptoTransform cryptoTransform = aesCryptoServiceProvider.CreateEncryptor();
            array = new byte[16];
            cryptoTransform.TransformBlock(keyId.ToByteArray(), 0, 16, array, 0);
        }
        byte[] array2 = new byte[8];
        Array.Copy(array, array2, 8);
        return Convert.ToBase64String(array2);
    }
    
  6. ContentKey エンティティを作成し、前の手順で受け取った値を使用して、EncryptedContentKey (Base64 エンコード形式の文字列に変換される)、ProtectionKeyId、ProtectionKeyType、ContentKeyType、および Checksum の各プロパティを設定します。

  7. $links 演算子で ContentKey エンティティを Asset エンティティに関連付けます。

  8. (次のセクションで説明するように) ファイルをアップロードした後で、CreateFileInfos を呼び出し、前の手順で作成した値を使用して File エンティティの暗号化プロパティを更新します。

Important重要
このトピックでは、暗号化キーの定義の例は省略されています。Media Services とやり取りする例のみが紹介されています。

次の例では、コンテンツ キーの暗号化に使用する必要のある証明書に対して、証明書のサムプリントである ProtectionKeyId を取得する方法を示します。この手順を実行して、コンピューターに適切な証明書が含まれていることを確認します。

GET https://media.windows.net/API/GetProtectionKeyId?contentKeyType=1 HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1335862109&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=ErOpftkPKjzX3bdYcEUZTK9yAwKIDc20y0kxEBZLvCk%3d
Host: media.windows.net

処理が正常に終了すると、次の応答が返されます。

HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 71
Content-Type: application/json;odata=verbose;charset=utf-8
Server: Microsoft-IIS/7.5
x-ms-request-id: 7940b777-4c95-4c68-9817-cd14d51ae2c4
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 30 Apr 2012 22:48:30 GMT

{"d":{"GetProtectionKeyId":"B2FE17BEF56FFCB9A3FC4267D0F2AFE25CD2DE22"}}

次の例では、前の手順で受け取った ProtectionKeyId を使用して X.509 証明書を取得する方法を示します。

GET https://media.windows.net/API/GetProtectionKey?ProtectionKeyId='B2FE17BEF56FFCB9A3FC4267D0F2AFE25CD2DE22' HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1335935139&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=s2dI0Ulkutx%2b5pTL0QGRnPQEv1Ogwz%2ff2SHRWK8bmyw%3d
Host: media.windows.net

処理が正常に終了すると、次の応答が返されます。

HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 1061
Content-Type: application/json;odata=verbose;charset=utf-8
Server: Microsoft-IIS/7.5
x-ms-request-id: 1a84817d-9967-4adc-92d9-5980b2cd5d45
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 01 May 2012 19:05:44 GMT

{"d":{"GetProtectionKey":"MIIDAjCCAe6gAwIBAgIQVq/2JBMjhoNDGQ93Rh6lhDAJBgUrDgMCHQUAMBkxFzAVBgNVBAMTDm5pbWJ1c2RldmNlcnQxMB4XDTExMDUwNDE4NDczOVoXDTM5MTIzMTIzNTk1OVowGTEXMBUGA1UEAxMObmltYnVzZGV2Y2VydDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCd/070wkNh/UuXZNVIkc8uflSMm+Qy6RDoAwdnl3fispkbe28YbB6AMuENKq9UrfUigGf51+MKnLaojxwwpwS+kdrRh+qQ7LBM0tjQ4bK1Iq80Q8dyQLpqqo6v16NzAFVeE4jW5205Z93h8m3EatQyyCGFN38BF9iIICeiPEjEEq4utDzeHgQT82enAdkqZ5mxRtOY3u3yT9O9HbS+Ghkobgg+kdbHpWlhSwSEKh94ASLeJvazL154OvIqfgZ7DaKQ11uAFqx237rNdX+w7JYHUQ4AZK2ed5xXTcXMcerUtjJZ4jiky83WaP6wCMcaA4R+76x3q8B91Rs3LS9yyqmRAgMBAAGjTjBMMEoGA1UdAQRDMEGAEIZT7vc/79JcQWslkhGbOCahGzAZMRcwFQYDVQQDEw5uaW1idXNkZXZjZXJ0MYIQVq/2JBMjhoNDGQ93Rh6lhDAJBgUrDgMCHQUAA4IBAQAcMOz4ScCP8F0VRkPjWPWDrLwD1rj5lwOTXvEL8tR23nrifkWgFQgONzMndp+FIgtoMLfb+6Cs0ZkslL/8cJ3zYWx+e1pSZydV3Ke9oSOVLWbWBtQgniBdb/b+/ur53NEkNxWzkTcM9UCg/pcLs9sKja2Kz8R12FUaf+2fOUBf2m0oRM9cyvoeBiI2AHX6Uo2WXpJixa8ofydB94oAbt/04lDMAHryrD1BAJR76z3gB6PLb4L12LDqeXjAIc6hgtrNsYBJMQAv4KDHcmHW1601QGuQsy+V4I35Y7bOQUNyTZRlUpLu0E/RRVKjyyMBDTE0xXABt4w23nNyczpH/4U3"}}
noteメモ
メッセージ本文内の証明書は Base64 エンコード形式であり、使用する前に展開する必要があります。

X.509 証明書を取得し、その公開キーを使用してコンテンツ キーを暗号化した後で、ContentKey エンティティを作成してプロパティ値をそれぞれ設定します。

次の例では、ContentKeyType にストレージ暗号化 ("1") を設定し、保護キー ID が X.509 証明書のサムプリントであることを示すために ProtectionKeyType に "0" を設定して、ContentKey を作成する方法を説明します。また、ID として ContentKey エンティティのキー ID を定義する必要があります。この値は GUID 値にする必要があり、コンテンツ識別子スキーム nb:kid:UUID:GUID に従う必要があります。コンテンツ識別子スキームの詳細については、「Identify Azure Media Services Entities」、ContentKey の詳細については「ContentKey」を参照してください。

POST https://media.windows.net/API/ContentKeys HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1336404839&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=JtpNaFsZWEq9WHl3zMcPbvxBg3HyfTRo%2fy7WEqNDFpw%3d
Host: media.windows.net
Content-Length: 223
Expect: 100-continue

{"Id" : "nb:kid:UUID:C02BB13C-94C3-426B-9DE3-1E331584EF7A", "ContentKeyType" : 1, "EncryptedContentKey" : "encrypted key value",  "ProtectionKeyId" : "B2FE17BEF56FFCB9A3FC4267D0F2AFE25CD2DE22", "ProtectionKeyType" : 0, "Checksum" : "checksum value"}

処理が正常に終了すると、次の応答が返されます。

HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 614
Content-Type: application/json;odata=verbose;charset=utf-8
Location: https://media.windows.net/api/ContentKeys('nb%3Akid%3AUUID%3Ac02bb13c-94c3-426b-9de3-1e331584ef7a')
Server: Microsoft-IIS/7.5
x-ms-request-id: 1d990cfc-acf1-4838-9f6e-c9308e51279e
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 07 May 2012 05:34:01 GMT

{"d":{"__metadata":{"id":"https://media.windows.net/api/ContentKeys('nb%3Akid%3AUUID%3Ac02bb13c-94c3-426b-9de3-1e331584ef7a')","uri":"https://media.windows.net/api/ContentKeys('nb%3Akid%3AUUID%3Ac02bb13c-94c3-426b-9de3-1e331584ef7a')","type":"Microsoft.Cloud.Media.Vod.Rest.Data.Models.ContentKey"},"Id":"nb:kid:UUID:c02bb13c-94c3-426b-9de3-1e331584ef7a","Created":"\/Date(1336368841597)\/","LastModified":"\/Date(1336368841597)\/","ContentKeyType":1,"EncryptedContentKey":"encrypted key value","Name":null,"ProtectionKeyId":"B2FE17BEF56FFCB9A3FC4267D0F2AFE25CD2DE22","ProtectionKeyType":0,"Checksum":"checksum value"}}

ContentKey を作成した後で、次の例に示すように $links 演算子を使用して Asset に関連付けます。

POST https://media.windows.net/API/Assets('nb:cid:UUID:2973c0de-404e-4f21-83a3-efd6910a532b')/$links/ContentKeys HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fmediaservices.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1336404839&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=JtpNaFsZWEq9WHl3zMcPbvxBg3HyfTRo%2fy7WEqNDFpw%3d
Host: media.windows.net
Content-Length: 120

{"uri":"https://media.windows.net/api/ContentKeys('nb%3Akid%3AUUID%3Ac02bb13c-94c3-426b-9de3-1e331584ef7a')" }

成功した場合は、メッセージ本文なしで応答コード 204 が返されます。

ファイルを BLOB ストレージにアップロードするには、適切な書き込みアクセス許可を Asset に設定し、ファイルをアップロードする URL を取得して、最後に Azure Storage REST API を使用して実際のアップロードを実行する必要があります。

ファイルを BLOB ストレージにアップロードする前に、資産に書き込むためのアクセス ポリシー権限を設定します。そのためには、AccessPolicies エンティティ セットに対する HTTP 要求の POST を実行します。作成時に DurationInMinutes 値を定義します。そうしない場合は、内部サーバー エラー (500) メッセージが返されます。AccessPolicy の詳細については、「AccessPolicy」を参照してください。

次の例では、AccessPolicy を作成する方法を示します。

POST https://media.windows.net/API/AccessPolicies HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1335956356&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=1B1ysfYRcpI%2fQY9SSNIBBVBpgc67j4R2yXD7BCxs8D8%3d
Host: media.windows.net
Content-Length: 76
Expect: 100-continue

{"Name": "NewUploadPolicy", "DurationInMinutes" : "300", "Permissions" : 2 }

処理が正常に終了すると、次の応答が返されます。

HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 526
Content-Type: application/json;odata=verbose;charset=utf-8
Location: https://media.windows.net/api/AccessPolicies('nb%3Apid%3AUUID%3A94763883-537a-41c0-a097-4e3f755bbeab')
Server: Microsoft-IIS/7.5
x-ms-request-id: 0a262141-e539-4fa6-b5d6-80cdf26d3ff6
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 02 May 2012 00:59:30 GMT

{"d":{"__metadata":{"id":"https://media.windows.net/api/AccessPolicies('nb%3Apid%3AUUID%3A94763883-537a-41c0-a097-4e3f755bbeab')","uri":"https://media.windows.net/api/AccessPolicies('nb%3Apid%3AUUID%3A94763883-537a-41c0-a097-4e3f755bbeab')","type":"Microsoft.Cloud.Media.Vod.Rest.Data.Models.AccessPolicy"},"Id":"nb:pid:UUID:94763883-537a-41c0-a097-4e3f755bbeab","Created":"\/Date(1335920371136)\/","LastModified":"\/Date(1335920371136)\/","Name":"NewUploadPolicy","DurationInMinutes":300,"Permissions":2}}

AccessPolicy が作成されたので、ファイルを BLOB ストレージにアップロードするための URL パスを提供する Locator エンティティにリンクします。

実際のアップロード URL を受け取るには、Locator エンティティを作成します。Locator は、開始時刻と、Asset 内の File にアクセスするクライアントの接続エンドポイントのタイプを定義します。特定の AccessPolicy と Asset のペアに対して複数の Locator エンティティを作成して、さまざまなクライアントの要求およびニーズを処理することができます。それぞれの Locator は、AccessPolicy の StartTime 値と DurationInMinutes 値を使用して、URL で使用できる期間を決定します。詳細については、「Locator」を参照してください。

noteメモ
特定の Asset に関連付けることのできる一意の Locator は一度に 5 個以内です。詳細については、「Locator」を参照してください。

Tipヒント
ファイルを直ちにアップロードする必要がある場合は、StartTime 値を現在時刻の 5 分前に設定してください。これは、クライアント マシンと Media Services の間で時計がずれている場合があるためです。また、StartTime 値は、次のような DateTime 形式で指定する必要があります。YYYY-MM-DDTHH:mm:ssZ (例: "2014-05-23T17:53:50Z")。

noteメモ
ロケーターが作成されてから使用可能になるまでに、30 ~ 40 秒の遅延が生じる場合があります。この問題は、SAS URL と Origin Locator の両方に発生します。

次の例では、要求本文の Type プロパティで定義されるように、SAS URL Locator を作成する方法を示します。返された Path プロパティには、ファイルのアップロード時に使用する必要のある URL が含まれます。

POST https://media.windows.net/API/Locators HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1335956356&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=1B1ysfYRcpI%2fQY9SSNIBBVBpgc67j4R2yXD7BCxs8D8%3d
Host: media.windows.net
Content-Length: 183
Expect: 100-continue

{"AccessPolicyId": "nb:pid:UUID:94763883-537a-41c0-a097-4e3f755bbeab", "AssetId" : "nb:cid:UUID:cab358e0-deaa-4c4f-9a9f-35687b54b0aa", "StartTime" : "2014-05-17T16:45:53", "Type" : 1 }

処理が正常に終了すると、次の応答が返されます。

HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 1148
Content-Type: application/json;odata=verbose;charset=utf-8
Location: https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A8002bf3c-a215-4602-b4a4-2aac367f709e')
Server: Microsoft-IIS/7.5
x-ms-request-id: 6937fd51-70ad-4d3d-8138-991863906b43
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 02 May 2012 00:59:30 GMT

{"d":{"__metadata":{"id":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A8002bf3c-a215-4602-b4a4-2aac367f709e')","uri":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A8002bf3c-a215-4602-b4a4-2aac367f709e')","type":"Microsoft.Cloud.Media.Vod.Rest.Data.Models.Locator"},"AccessPolicy":{"__deferred":{"uri":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A8002bf3c-a215-4602-b4a4-2aac367f709e')/AccessPolicy"}},"Asset":{"__deferred":{"uri":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A8002bf3c-a215-4602-b4a4-2aac367f709e')/Asset"}},"Id":"nb:lid:UUID:8002bf3c-a215-4602-b4a4-2aac367f709e","ExpirationDateTime":"\/Date(1335938672000)\/","Type":1,"Path":"https://yourstorageaccount.blob.core.windows.net/asset-0a5ed405-ac50-45c7-a3bf-04d20eca17ad?st=2012-05-02T01%3A04%3A32Z&se=2012-05-02T06%3A04%3A32Z&sr=c&si=8002bf3c-a215-4602-b4a4-2aac367f709e&sig=r9IVlPDi4TfaCnG8fqpZUwr%2F3pMPsdFyVVYkwe6GKg0%3D","AccessPolicyId":"nb:pid:UUID:94763883-537a-41c0-a097-4e3f755bbeab","AssetId":"nb:cid:UUID:cab358e0-deaa-4c4f-9a9f-35687b54b0aa","StartTime":"\/Date(1335920672000)\/"}}

AccessPolicy と Locator を設定すると、Azure Storage REST API を使用して実際のファイルが Azure BLOB ストレージ コンテナーにアップロードされます。ページ BLOB またはブロック BLOB をアップロードできます。BLOB のアップロードの詳細については、「ストレージ サービス REST API リファレンス」を参照してください。

次の例では、SDK メディア サンプルのブロック BLOB を Asset コンテナーにアップロードする方法を示します。

noteメモ
前のセクションで受け取った Locator Path 値にアップロードするファイルのファイル名を追加する必要があります。この例では、ファイル名は samplevid.wmv です。

PUT https://yourstorageaccount.blob.core.windows.net/asset-9cd47271-9798-446f-b91d-22b0d228cc17/samplevid.wmv?st=2012-05-08T19%3A32%3A01Z&se=2012-05-09T00%3A32%3A01Z&sr=c&si=3e21040c-95d8-48b0-aee5-171d9621105d&sig=%2FSS6c%2FOELEtDfqi5TT7hFLYut38IKrV6iiQEhV2t52s%3D HTTP/1.1
Content-Type: application/octet-stream
x-ms-version: 2011-08-18
x-ms-date: 2011-01-17
x-ms-blob-type: BlockBlob
Host: yourstorageaccount.blob.core.windows.net
Content-Length: 4045744
Expect: 100-continue

wsh?1hfN??C?V??,?-?sd??:?j?dCfT?,?6????8?f?p??o??"?????6C??q?????KbP???w*????i
[Rest of binary data truncated for readability]

処理が正常に終了すると、次の応答が返されます。

HTTP/1.1 201 Created
Transfer-Encoding: chunked
Content-MD5: 2Lzhghji5MH0CZ+EUidXyA==
Last-Modified: Tue, 08 May 2012 19:37:16 GMT
ETag: "0x8CEFB691BBEDD64"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 4902799b-568f-49a8-893c-77fbee74ce18
x-ms-version: 2011-08-18
Date: Tue, 08 May 2012 19:37:15 GMT

0

ファイルをアップロードした後で、アップロード ロケーターを削除して、Asset の BLOB ストレージ コンテナーへの書き込みアクセスを取り消します。

DELETE https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A81e5bd32-46ad-4d66-b7b8-50008ee4aec5') HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1336547485&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=ISzXspEIbgWifYYXqiPK1vo3%2bDHnTsX85umNxRjD3kQ%3d
Host: media.windows.net
Content-Length: 0

成功した場合は、メッセージ本文なしで応答コード 204 が返されます。

ファイルのアップロードが終了したので、File エンティティを生成します。このエンティティはファイルに関する重要なメタデータを格納しており、次の例に示すように、CreateFileInfos を呼び出して作成することができます。

GET https://media.windows.net/api/CreateFileInfos?assetid='nb%3Acid%3AUUID%3Ac80d312d-7cb1-44aa-bb23-2c35d10c44bd' HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1336547485&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=ISzXspEIbgWifYYXqiPK1vo3%2bDHnTsX85umNxRjD3kQ%3d
Host: media.windows.net
Content-Length: 0

成功した場合は、メッセージ本文なしで応答コード 204 が返されます。

ファイルを暗号化した場合は、次の表に従って File エンティティのプロパティを更新する必要があります。エンティティを更新する方法の例については、「Media Services REST API を使って資産を管理する」を参照してください。File エンティティのプロパティの詳細については、「AssetFile」を参照してください。

 

プロパティ 暗号化のタイプ

IsEncrypted

ストレージおよび共通暗号化で、値を "true" に設定する必要があります。

ストレージ、共通

EncryptionKeyId

暗号化された ContentKey ID。

ストレージ

EncryptionScheme

ストレージの暗号化で、値を "StorageEncryption" に設定する必要があります。共通暗号化で、値を "CommonEncryption" に設定する必要があります。

ストレージ、共通

EncryptionVersion

値を "1.0" に設定する必要があります。

ストレージ、共通

InitializationVector

前に定義された初期化ベクトル値。

ストレージ

成功した場合は、メッセージ本文なしで応答コード 204 が返されます。

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft