导出 (0) 打印
全部展开

使用 Media Services REST API 连接到 Media Services

更新时间: 2014年10月

访问 Microsoft Azure Media Services 时需要以下两项内容:由 Azure 访问控制服务 (ACS) 提供的访问令牌和 Media Services 本身的 URI。在创建这些请求时,可以使用任何想要的方法,前提是在调用 Media Services 时指定了正确的标头值,并且正确地传入了访问令牌。

以下步骤描述了在使用 Media Services REST API 连接到 Media Services 时运用的最常见工作流:

  1. 获取访问令牌

  2. 连接到 Media Services URI

    Important重要提示
    成功连接到 https://media.windows.net 后,将收到一个 301 重定向,指定另一个媒体服务 URI。你必须对这个新 URI 进行后续调用。

    你还可能会收到包含 ODATA API 元数据说明的 HTTP/1.1 200 响应。

  3. 将后续 API 调用发布到新的 URL。

    例如,如果在尝试连接后收到以下消息:

    HTTP/1.1 301 Moved Permanently
    Location: https://wamsbayclus001rest-hs.cloudapp.net/api/
    
    
    则应该将后续 API 调用发布到 https://wamsbayclus001rest-hs.cloudapp.net/api/

若要直接通过 REST API 访问 Media Services,请从 ACS 检索一个访问令牌,并在向该服务提出每个 HTTP 请求期间使用该令牌。此令牌类似于 ACS 基于 HTTP 请求标头中的访问声明提供的其他令牌,并且使用 OAuth v2 协议。在直接连接到 Media Services 之前,你不需要满足任何其他先决条件。

以下示例显示了用于检索令牌的 HTTP 请求标头和正文:

POST https://wamsprodglobal001acs.accesscontrol.windows.net/v2/OAuth2-13 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: wamsprodglobal001acs.accesscontrol.windows.net
Content-Length: 120
Expect: 100-continue
Connection: Keep-Alive

grant_type=client_credentials&client_id=client id value&client_secret=URL-encoded client secret value&scope=urn%3aWindowsAzureMediaServices

Important重要提示
在你设置帐户时,Media Services 将向你提供 client_id 和 client_secret。它们分别对应于 AccountName 和 AccountKey 值。有关详细信息,请参阅 Media Services account setup instructions(Media Services 帐户设置说明)。此外,当用作访问令牌请求中的 client_secret 值时,你的Media Services帐户的 AccountKey 必须进行 URL 编码。

以下示例显示了在响应正文中包含访问令牌的 HTTP 响应。

HTTP/1.1 200 OK
Cache-Control: public, no-store, max-age=0
Content-Type: application/json; charset=utf-8
Expires: Fri, 13 Jan 2012 22:40:07 GMT
Last-Modified: Fri, 13 Jan 2012 22:40:07 GMT
Vary: *
Server: Microsoft-IIS/7.5
Set-Cookie: ASP.NET_SessionId=w3mtu2rnxucaz5tvj0iyfm0t; path=/; HttpOnly
X-AspNetMvc-Version: 2.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
X-Content-Type-Options: nosniff
Date: Fri, 13 Jan 2012 22:40:07 GMT
Content-Length: 580

{"access_token":"http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=client_id&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1326498007&Issuer=https%3a%2f%2f wamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=hV1WF7sTe%2ffoHqzK%2ftmnwQY22NRPaDytcOOpC9Nv4DA%3d","token_type":"http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0","expires_in":"3599","scope":"urn:WindowsAzureMediaServices"}

Important重要提示
建议在外部存储中缓存“access_token”和“expires_in”值。以后可以从存储中检索令牌数据,并在你的 Media Services REST API 调用中重新使用。这对于令牌可以在多个进程或多台计算机之间安全共享的方案尤其有用。

确保监视访问令牌的“expires_in”值,并在必要时使用新令牌更新你的 REST API 调用。

Media Services 的根 URI 为 https://media.windows.net/。你最初应连接到此 URI,如果在响应中收到“301 重定向”,则应随后调用新 URI。此外,请勿在请求中使用任何自动重定向/跟踪逻辑。HTTP 谓词和请求正文将不会转发到新 URI。

用于上载和下载资产文件的根 URI 为 https://yourstorageaccount.blob.core.windows.net/,其中的存储帐户名为你在 Media Services 帐户设置期间使用的同一帐户名。

以下代码示例说明了如何在 Media Services 中创建资产。请注意,在请求标头中传递的实际授权机制为 OAuth v2 持有者令牌。

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.7
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" }
Tip提示
为了使 Media Services 实体易于检测,可使用 $metadata 操作。使用该操作,你可以检索所有有效的实体类型、实体属性、关联、函数、操作等。以下示例说明了如何构建 URI:https://media.windows.net/API/$metadata。

如果希望在浏览器中查看元数据,应在 URI 的末尾追加“?api-version=2.7”,或不在请求中包括 x-ms-version 标头。

另请参阅

显示:
© 2014 Microsoft