VENTES: 1-800-867-1389

Réception des éléments multimédias avec l’API REST de Media Services

Mis à jour: février 2014

La réception d’éléments multimédias dans Microsoft Azure Media Services à l’aide de l’API REST implique plusieurs étapes. Pour certaines actions, comme le chiffrement d’un élément multimédia, plusieurs étapes sont nécessaires avant d’interagir avec Services de média. Cependant, la plupart des actions, comme la création d’un élément multimédia, sont simples et nécessitent seulement d’avoir une connaissance basique des principes REST, du protocole OData v3, et, dans le cas des exemples de code, de JSON.

Le flux de travail de base pour la réception des éléments multimédias comporte les sections suivantes :

Pour plus d’informations sur la réception en bloc d’éléments multimédias, voir Réception d’éléments multimédias en bloc avec l’API REST.

noteRemarque
Les services multimédias utilisent la valeur de la propriété IAssetFile.Name lors de la génération d'URL pour la diffusion de contenu en continu (par exemple, http://{WAMSAccount}.origin.mediaservices.windows.net/{GUID}/{IAssetFile.Name}/streamingParameters.) Pour cette raison, l'encodage pourcentage n'est pas admis. La valeur de la propriété Name ne peut contenir aucun des caractères réservés d'encodage pourcentage suivants : !*'();:@&=+$,/?%#[]". Il ne peut aussi y avoir qu'un seul ‘.’ pour l'extension de nom de fichier.

ImportantImportant
Lorsque vous utilisez l'API REST de Media Services, prenez en compte les éléments suivants :

Un élément multimédia est un conteneur pour plusieurs types ou ensembles d’objets dans Services de média, notamment des fichiers vidéo, audio, de collections de miniatures, de pistes textuelles et de légendes. Dans l’API REST, la création d’un élément multimédia nécessite d’envoyer une requête POST à Services de média et de placer toutes les informations de propriété relatives à votre élément multimédia dans le corps de la requête.

L’exemple suivant décrit la création d’un élément multimédia avec le nom convivial défini sur « 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" }

Si l’opération réussit, la réponse suivante est renvoyée :

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

Pour plus d’informations sur les propriétés et opérations de l’entité Asset, voir Asset.

Le chiffrement des éléments multimédias est une étape facultative. Il est, cependant, recommandé de chiffrer les éléments multimédias. Dans Services de média, vous pouvez utiliser : le chiffrement de stockage des fichiers de l'élément multimédia ou le chiffrement commun pour gérer les fichiers protégés par la gestion des droits numériques (DRM) (par exemple, PlayReady). Vous pouvez également utiliser le chiffrement de configuration pour encoder des données de configuration de codage qui peuvent contenir des informations sensibles prédéfinies. Chaque type de chiffrement nécessite une clé de contenu AES, un certificat X.509 utilisé pour chiffrer la clé de contenu et les propriétés correspondantes définies sur les entités Asset, ContentKey et File. La longueur des clés de contenu varie en fonction du type de celles-ci. Le chiffrement de stockage et de la configuration nécessite des clés de 256 bits, tandis que le chiffrement commun nécessite une clé de 128 bits.

Voici les grandes étapes nécessaires pour chiffrer les fichiers que vous chargez dans le stockage des objets blob :

  1. Générez de manière aléatoire une clé AES de 256 bits (32 octets). Celle-ci constituera la clé de contenu pour votre élément multimédia, ce qui signifie que tous les fichiers associés à cet élément multimédia devront utiliser la même clé de contenu durant le déchiffrement.

  2. Générez de manière aléatoire une valeur de vecteur d’initialisation (VI) de 64 bits par fichier en vérifiant que la valeur VI est unique pour chaque fichier dans l’élément multimédia.

  3. Créez une entité Asset avec la propriété Options définie sur « 1 » si vous voulez que les fichiers des éléments multimédias soient chiffrés après le téléchargement (réception). Affectez à Options la valeur « 2 » si vous utilisez le chiffrement commun.

    noteRemarque
    Cette étape peut intervenir avant ou après les étapes 1 et 2.

  4. Appelez les méthodes GetProtectionKeyId et GetProtectionKey pour obtenir le certificat X.509 approprié qui doit être utilisé pour chiffrer votre clé de contenu.

  5. Chiffrez votre clé de contenu avec la clé publique du certificat X.509. Créez également une valeur de somme de contrôle MD5 basée sur la clé de contenu chiffrée.

  6. Créez une entité ContentKey et définissez les propriétés EncryptedContentKey (convertie en chaîne encodée en Base64), ProtectionKeyId, ProtectionKeyType, ContentKeyType et Checksum avec les valeurs que vous avez reçues au cours des étapes précédentes.

  7. Associez l’entité ContentKey à votre entité Asset via l’opération $links.

  8. Une fois le fichier chargé (décrit dans la section suivante), appelez CreateFileInfos et mettez à jour les propriétés de chiffrement sur l’entité File avec les valeurs que vous avez créées au cours des étapes précédentes.

ImportantImportant
Les exemples définissant les clés de chiffrement ont été omis dans cette rubrique. Seuls ceux qui décrivent l’interaction avec Media Services sont fournis.

L’exemple suivant décrit la récupération du ProtectionKeyId (empreinte de certificat) pour le certificat que vous devez utiliser lors du chiffrement de votre clé de contenu. Cette étape permet de vérifier que vous disposez déjà du certificat approprié sur votre ordinateur.

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

Si l’opération réussit, la réponse suivante est renvoyée :

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

L’exemple suivant décrit la récupération du certificat X.509 à l’aide de la ProtectionKeyId reçue au cours de l’étape précédente.

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

Si l’opération réussit, la réponse suivante est renvoyée :

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"}}
noteRemarque
Le certificat dans le corps de message est encodé en Base64 et doit être décodé avant son utilisation.

Après avoir récupéré le certificat X.509 et utilisé sa clé publique pour chiffrer votre clé de contenu, créez une entité ContentKey et définissez les valeurs de ses propriétés en conséquence.

L’exemple suivant décrit la création d’une ContentKey avec un ContentKeyType défini pour le chiffrement de stockage (« 1 ») et le ProtectionKeyType défini sur « 0 » pour indiquer que l’ID de la clé de protection correspond à l’empreinte de certificat X.509. Vous devez également définir l’ID ou l’ID de clé de l’entité ContentKey. Cette valeur doit être une valeur GUID et respecter le schéma d’identificateur de contenu nb:kid:UUID:GUID. Pour plus d’informations sur les schémas d’identificateur de contenu, voir Identification des entités Windows Azure Media Services. Pour plus d’informations sur les ContentKeys, voir 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"}

Si l’opération réussit, la réponse suivante est renvoyée :

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

Après avoir créé la ContentKey, associez-la à votre élément multimédia à l’aide de l’opération $links, comme indiqué dans l’exemple suivant :

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

Si l’opération réussit, un code de réponse 204 est renvoyé sans aucun corps de message.

Le chargement d’un fichier vers le stockage d’objets blob nécessite de définir les autorisations en écriture appropriées sur l’élément multimédia, de récupérer une URL vers laquelle charger le fichier, et enfin, d’effectuer le chargement réel à l’aide des API REST de stockage Azure.

Avant de charger des fichiers dans le stockage d’objets blob, définissez les droits de la stratégie d’accès pour écrire dans un élément multimédia. Pour ce faire, envoyez une requête HTTP POST à l’ensemble d’entités AccessPolicy. Définissez une valeur DurationInMinutes lors de la création, sans quoi vous recevrez le message 500 (Erreur interne du serveur) en réponse. Pour plus d’informations sur les stratégies d’accès, voir AccessPolicy.

L’exemple suivant décrit la création d’une stratégie d’accès :

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 }

Si l’opération réussit, la réponse suivante est renvoyée :

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

À présent que vous avez créé votre stratégie d’accès, liez celle-ci à une entité Locator qui vous fournira un chemin d’accès d’URL pour charger votre fichier dans le stockage d’objets blob.

Pour recevoir l’URL de chargement réelle, créez une entité Locator. Les localisateurs définissent l’heure de début et le type du point de terminaison de connexion pour les clients qui souhaitent accéder aux fichiers inclus dans un élément multimédia. Vous pouvez créer plusieurs entités Locator pour une paire AccessPolicy/Asset donnée afin de gérer les différents besoins et demandes des clients. Chacun de ces localisateurs utilise la valeur StartTime et la valeur DurationInMinutes de la stratégie d’accès pour déterminer la durée pendant laquelle une URL peut être utilisée. Pour plus d’informations, voir Locator.

noteRemarque
Un élément multimédia ne peut pas être associé à plus de cinq localisateurs uniques à la fois. Pour plus d’informations, voir Locator.

TipConseil
Si vous devez charger vos fichiers immédiatement, vous devez définir la valeur StartTime sur cinq minutes avant l’heure actuelle. En effet, il peut exister un décalage horaire entre l’ordinateur client et Services de média. Votre valeur StartTime doit aussi avoir le format DateTime suivant : YYYY-MM-DDTHH:mm:ssZ (par exemple, « 2014-05-23T17:53:50Z »).

noteRemarque
30 à 40 secondes peuvent être nécessaires entre la création d’un localisateur et le moment où ce dernier est disponible. Ce problème s’applique aux localisateurs d’URL SAS et d’origine.

L’exemple suivant décrit la création d’un localisateur d’URL SAS, comme défini par la propriété Type dans le corps de la requête. La propriété Path renvoyée contient l’URL que vous devez utiliser pour charger votre fichier.

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 }

Si l’opération réussit, la réponse suivante est renvoyée :

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

Une fois que vous avez défini la stratégie d’accès et le localisateur, le fichier réel est chargé vers un conteneur de stockage d’objets blob Azure à l’aide des API REST de stockage Azure. Vous pouvez procéder au chargement sous la forme d’objets blob de pages ou de blocs. Pour plus d’informations sur le chargement des objets blob, voir Azure Storage Services REST API Reference (Référence pour l’API REST des services de stockage Azure).

L’exemple suivant décrit le chargement d’un objet blob de blocs issu des exemples multimédias du Kit de développement logiciel (SDK) dans le conteneur d’élément multimédia.

noteRemarque
Vous devez ajouter le nom du fichier à charger à la valeur de chemin d’accès du localisateur reçue dans la section précédente. Dans cet exemple, le nom de fichier est 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]

Si l’opération réussit, la réponse suivante est renvoyée :

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

Après avoir chargé votre fichier, vous devez SUPPRIMER le localisateur de chargement pour révoquer l’accès en écriture au conteneur de stockage d’objets blob de votre élément multimédia.

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

Si l’opération réussit, un code de réponse 204 est renvoyé sans aucun corps de message.

À présent que vous avez téléchargé votre fichier, générez l’entité File pour celui-ci. Cette entité contient des métadonnées importantes en relation avec votre fichier et peut être créée en appelant CreateFileInfos, comme indiqué dans l’exemple suivant.

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

Si l’opération réussit, un code de réponse 204 est renvoyé sans aucun corps de message.

Si vous avez chiffré des fichiers, vous devez mettre à jour les propriétés sur l’entité File en fonction du tableau ci-dessous. Pour consulter un exemple de mise à jour d’une entité, voir Gestion des éléments multimédias avec l’API REST de Media Services. Pour plus d’informations sur les propriétés de l’entité File, voir AssetFile.

 

Propriété Valeur Type de chiffrement

IsEncrypted

Pour le chiffrement de stockage et le chiffrement commun, la valeur doit être définie sur « true ».

Stockage, Commun

EncryptedKeyId

ID de ContentKey chiffrée.

Stockage

EncryptionScheme

Pour le chiffrement de stockage, la valeur définie doit être « StorageEncryption ». Pour le chiffrement commun, la valeur définie doit être « CommonEncryption ».

Stockage, Commun

EncryptionVersion

La valeur doit être définie sur « 1.0. »

Stockage, Commun

InitializationVector

Valeur du vecteur d’initialisation définie précédemment.

Stockage

Si l’opération réussit, un code de réponse 204 est renvoyé sans aucun corps de message.

Voir aussi

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.
Afficher:
© 2014 Microsoft