VERTRIEB: 1-800-867-1380

Erfassen von Medienobjekten mit der Media Services REST-API

Letzte Aktualisierung: Februar 2014

Das Erfassen von Medienobjekten in Microsoft Azure Media Services mithilfe der REST-API erfolgt in mehreren Schritten. Für bestimmte Aktionen (etwa das Verschlüsseln eines Medienobjekts) müssen Sie daher mehrere Schritte ausführen, bevor Sie mit Mediendienste interagieren können. Die meisten Aktionen (z. B. das Erstellen des Medienobjekts selbst) sind jedoch unkompliziert und erfordern nur Grundkenntnisse von REST-Prinzipien, OData v3 und im Fall der Codebeispiele von JSON.

Der grundlegende Workflow für die Erfassung von Medienobjekten wird in die folgenden Abschnitte unterteilt:

Weitere Informationen zur Sammelerfassung von Medienobjekten finden Sie unter Sammelerfassung von Medienobjekten mithilfe der REST-API.

noteHinweis
Media Services verwendet den Wert der Eigenschaft IAssetFile.Name, wenn URLs für den Streaminginhalt erstellt werden (Beispiel: http://{WAMS-Konto}.origin.mediaservices.windows.net/{GUID}/{IAssetFile.Name}/streamingParameters). Aus diesem Grund wird Prozentcodierung nicht unterstützt. Der Wert der Eigenschaft Name darf keines der folgenden reservierten Zeichen für Prozentcodierung enthalten: !*'();:@&=+$,/?%#[]". Außerdem darf nur ein "." für die Dateinamenerweiterung vorhanden sein.

ImportantWichtig
Bei der Arbeit mit der Media Services REST-API gelten die folgenden Überlegungen:

Ein Medienobjekt ist ein Container für mehrere Typen oder Sammlungen von Objekten in Mediendienste (z. B. Video, Audio, Bilder, Miniaturansichtsammlungen, Texttitel und geschlossene Untertiteldateien). In der REST-API muss für das Erstellen eines Medienobjekts eine POST-Anforderung an Mediendienste gesendet werden, und alle Eigenschafteninformationen zu Ihrem Medienobjekt müssen in den Anforderungstext eingefügt werden.

Das folgende Beispiel zeigt, wie ein Medienobjekt mit einem auf NewJSONAsset festgelegten Anzeigenamen erstellt wird.

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" }

Bei Erfolg wird die folgende Antwort zurückgegeben:

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}}

Weitere Informationen zu Eigenschaften und Vorgängen von Medienobjektentitäten finden Sie unter Asset.

Das Verschlüsseln der Medienobjekte stellt einen optionalen Schritt dar. Es wird jedoch empfohlen, Medienobjekte zu verschlüsseln. In Mediendienste können Sie die folgenden Verfahren verwenden: Speicherverschlüsselung der Dateien des Medienobjekts oder allgemeine Verschlüsselung zum Verwalten von durch DRM geschützten Dateien (z. B. PlayReady). Sie können auch Konfigurationsverschlüsselung für das Verschlüsseln von Daten der Codierungskonfiguration verwenden, die ggf. vertrauliche vordefinierte Informationen enthalten. Jeder Verschlüsselungstyp erfordert einen AES-Inhaltsschlüssel, ein X.509-Zertifikat, das zum Verschlüsseln des Inhaltsschlüssels verwendet wird, und entsprechende Eigenschaften, die für die Entitäten Asset, ContentKey und File festgelegt werden. Die Länge der Inhaltsschlüssel hängt vom Typ des Inhaltsschlüssels ab. Für die Speicher- und Konfigurationsverschlüsselung sind 256-Bit-Schlüssel erforderlich, allgemeine Verschlüsselung erfordert einen 128-Bit-Schlüssel.

Im folgenden werden allgemeine Schritte zum Verschlüsseln von Dateien aufgeführt, die Sie in den Blob-Speicher hochladen:

  1. Generieren eines zufälligen 256-Bit-AES-Schlüssels (32 Bytes). Dies ist der Inhaltsschlüssel für Ihr Medienobjekt. Dies bedeutet, dass alle diesem Medienobjekt zugeordneten Dateien während der Verschlüsselung den gleichen Inhaltsschlüssel verwenden müssen.

  2. Generieren eines zufälligen 64-Bit-Initialisierungsvektorwerts (IV) pro Datei und Sicherstellen, dass der IV-Wert für jede Datei im Medienobjekt eindeutig ist.

  3. Erstellen einer Medienobjektentität, wobei die Eigenschaft Options auf den Wert 1 festgelegt ist, wenn die Medienobjektdateien nach dem Hochladen (Erfassung) verschlüsselt werden sollen. Legen Sie Options auf den Wert 2 fest, wenn Sie allgemeine Verschlüsselung verwenden.

    noteHinweis
    Dieser Schritt kann vor oder nach dem Ausführen der Schritte 1 und 2 erfolgen.

  4. Aufrufen der Methoden GetProtectionKeyId und GetProtectionKey zum Abrufen des richtigen X.509-Zertifikats, das zum Verschlüsseln Ihres Inhaltsschlüssels verwendet werden muss.

  5. Verschlüsseln Ihres Inhaltsschlüssels mit dem öffentlichen Schlüssel des X.509-Zertifikats. Außerdem Erstellen eines MD5-Prüfsummenwerts basierend auf dem verschlüsselten Inhaltsschlüssel.

  6. Erstellen einer ContentKey-Entität und Festlegen der Eigenschaften EncryptedContentKey (konvertiert in eine base64-codierte Zeichenfolge), ProtectionKeyId, ProtectionKeyType, ContentKeyType und Checksum auf die in den vorherigen Schritten abgerufenen Werte.

  7. Zuordnen der ContentKey-Entität zu Ihrer Asset-Entität über den Vorgang $links.

  8. Nachdem Sie die Datei hochgeladen haben (eine Beschreibung dazu finden Sie im nächsten Abschnitt), rufen Sie CreateFileInfos auf und aktualisieren die Verschlüsselungseigenschaften für die File-Entität mit den Werten, die Sie in den vorherigen Schritten erstellt haben.

ImportantWichtig
Beispiele für das Definieren von Verschlüsselungsschlüsseln werden in diesem Thema nicht zur Verfügung gestellt. Nur die Beispiele, die die Interaktion mit Media Services zeigen, werden bereitgestellt.

Die folgenden Beispiele zeigen, wie die ProtectionKeyId (ein Zertifikatfingerabdruck) für das Zertifikat abgerufen wird, das beim Verschlüsseln Ihres Inhaltsschlüssels verwendet werden muss. Führen Sie diesen Schritt aus, um sicherzustellen, dass bereits das entsprechende Zertifikat auf Ihrem Computer vorhanden ist.

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

Bei Erfolg wird die folgende Antwort zurückgegeben:

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"}}

Das folgende Beispiel zeigt, wie das X.509-Zertifikat mithilfe der ProtectionKeyId abgerufen wird, die Sie im vorherigen Schritt erhalten haben.

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

Bei Erfolg wird die folgende Antwort zurückgegeben:

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"}}
noteHinweis
Das Zertifikat im Nachrichtentext ist base64-codiert und muss vor der Verwendung decodiert werden.

Nachdem Sie das X.509-Zertifikat abgerufen und seinen öffentlichen Schlüssel zum Verschlüsseln Ihres Inhaltsschlüssels verwendet haben, erstellen Sie eine ContentKey-Entität und legen deren Eigenschaftenwerte entsprechend fest.

Das folgende Beispiel zeigt das Erstellen eines ContentKey-Objekts, dessen ContentKeyType auf Speicherverschlüsselung (1) und dessen ProtectionKeyType auf 0 festgelegt ist, um anzugeben, dass die ID des Schutzschlüssels der Fingerabdruck des X.509-Zertifikats ist. Außerdem müssen Sie die ID oder Schlüssel-ID der ContentKey-Entität definieren. Dieser Wert muss ein GUID-Wert sein, der das Inhaltsbezeichnerschema nb:kid:UUID:GUID verwendet. Weitere Informationen zu Inhaltsbezeichnerschemas finden Sie unter Identifizieren von Windows Azure Media Services-Entitäten, weitere Informationen zu ContentKeys unter 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"}

Bei Erfolg wird die folgende Antwort zurückgegeben:

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"}}

Nachdem Sie das ContentKey-Objekt erstellt haben, ordnen Sie es Ihrem Medienobjekt mithilfe des Vorgangs $links wie im folgenden Beispiel gezeigt zu:

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')" }

Bei Erfolg wird ein Antwortcode 204 ohne Nachrichtentext zurückgegeben.

Für das Hochladen einer Datei in den Blob-Speicher ist es erforderlich, die entsprechenden Schreibberechtigungen für das Medienobjekt festzulegen, eine URL abzurufen, an die die Datei hochgeladen wird, und schließlich den tatsächlichen Upload mithilfe der REST-APIs des Azure-Speichers auszuführen.

Bevor Sie Dateien in den Blob-Speicher hochladen, legen Sie die Zugriffsrichtlinienrechte zum Schreiben in ein Medienobjekt fest. Übermitteln Sie zu diesem Zweck mithilfe von POST eine HTTP-Anforderung an die AccessPolicies-Entitätssammlung. Definieren Sie bei der Erstellung einen DurationInMinutes-Wert. Andernfalls erhalten Sie die Meldung 500 Interner Serverfehler als Antwort. Weitere Informationen zu AccessPolicies finden Sie unter AccessPolicy.

Das folgende Beispiel zeigt, wie eine AccessPolicy erstellt wird:

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 }

Bei Erfolg wird die folgende Antwort zurückgegeben:

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}}

Nachdem Sie nun Ihre AccessPolicy erstellt haben, verknüpfen Sie diese mit einer Locator-Entität, die Ihnen einen URL-Pfad zum Hochladen der Datei in den Blob-Speicher zur Verfügung stellt.

Erstellen Sie eine Locator-Entität, um die Upload-URL zu empfangen. Locator definieren die Startzeit und den Typ des Verbindungsendpunkts für Clients, die auf Dateien in einem Medienobjekt zugreifen möchten. Sie können mehrere Locator-Entitäten für ein AccessPolicy-Asset-Paar definieren, um verschiedene Clientanforderungen und -erfordernisse zu verarbeiten. Jeder dieser Locator verwendet den StartTime-Wert sowie den DurationInMinutes-Wert des AccessPolicy-Objekts, um die Zeitspanne zu ermitteln, für die eine URL verwendet werden kann. Weitere Informationen finden Sie unter Locator.

noteHinweis
Einem bestimmten Medienobjekt können gleichzeitig maximal fünf eindeutige Locator zugeordnet werden. Weitere Informationen finden Sie unter Locator.

TipTipp
Wenn Sie Ihre Dateien sofort hochladen müssen, sollten Sie den StartTime-Wert auf fünf Minuten vor der aktuellen Uhrzeit festlegen. Dies ist erforderlich, weil ggf. eine Uhrabweichung zwischen dem Clientcomputer und Mediendienste vorliegen kann. Außerdem muss Ihr StartTime-Wert das folgende DateTime-Format verwenden: YYYY-MM-DDTHH:mm:ssZ (z. B. "2014-05-23T17:53:50Z").

noteHinweis
Ggf. tritt eine Verzögerung von 30 bis 40 Sekunden zwischen dem Erstellen eines Locators und seiner Verfügbarkeit auf. Dies gilt für die SAS-URL sowie für Ursprungslocator.

Das folgende Beispiel zeigt das Erstellen eines SAS-URL-Locators wie durch die Eigenschaft Type im Anforderungstext definiert. Die zurückgegebene Eigenschaft Path enthält die URL, die Sie zum Hochladen Ihrer Datei verwenden müssen.

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 }

Bei Erfolg wird die folgende Antwort zurückgegeben:

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)\/"}}

Nachdem das AccessPolicy-Objekt und der Locator festgelegt wurden, wird die tatsächliche Datei in einen Azure-Blob-Speichercontainer mithilfe der REST-APIs des Azure-Speichers hochgeladen. Der Upload kann in Seiten- oder Block-Blobs erfolgen. Weitere Informationen zum Upload von Blobs finden Sie unter REST API-Referenz zu den Azure Storage Services).

Das folgende Beispiel zeigt, wie ein Block-Blob aus den SDK-Medienbeispielen in den Medienobjektcontainer hochgeladen wird.

noteHinweis
Sie müssen den Dateinamen für die hochzuladende Datei dem Locatorpfadwert hinzufügen, den Sie im vorherigen Abschnitt erhalten haben. In diesem Beispiel lautet der Dateiname 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]

Bei Erfolg wird die folgende Antwort zurückgegeben:

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

Nachdem Sie Ihre Datei hochgeladen haben, sollten Sie den Uploadlocator mittels DELETE löschen, um den Schreibzugriff auf den Blob-Speichercontainer Ihres Medienobjekts zu widerrufen.

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

Bei Erfolg wird ein Antwortcode 204 ohne Nachrichtentext zurückgegeben.

Nachdem die Datei nun hochgeladen wurde, generieren Sie eine File-Entität für sie. Diese Entität enthält wichtige Metadaten zu Ihrer Datei und kann durch einen Aufruf von CreateFileInfos wie im folgenden Beispiel gezeigt erstellt werden.

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

Bei Erfolg wird ein Antwortcode 204 ohne Nachrichtentext zurückgegeben.

Wenn Sie Dateien verschlüsselt haben, müssen Sie die Eigenschaften für die File-Entität gemäß der Tabelle unten aktualisieren. Ein Beispiel für das Aktualisieren einer Entität finden Sie unter Verwalten von Medienobjekten mit der Media Services REST-API. Weitere Informationen zu den Eigenschaften der File-Entität finden Sie unter AssetFile.

 

Eigenschaft Wert Verschlüsselungstyp

IsEncrypted

Für Speicher- und allgemeine Verschlüsselung muss der Wert auf true festgelegt werden.

Speicher, allgemein

EncryptedKeyId

Die verschlüsselte ContentKey-ID.

Speichermodule

EncryptionScheme

Für Speicherverschlüsselung muss der Wert auf StorageEncryption festgelegt werden. Für allgemeine Verschlüsselung muss der Wert auf CommonEncryption festgelegt werden.

Speicher, allgemein

EncryptionVersion

Der Wert muss auf 1.0 festgelegt werden.

Speicher, allgemein

InitializationVector

Der zuvor definierte Initialisierungsvektorwert.

Speichermodule

Bei Erfolg wird ein Antwortcode 204 ohne Nachrichtentext zurückgegeben.

Siehe auch

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Anzeigen:
© 2014 Microsoft