向 Elastic Transcoder 发出 HTTP 请求 - Amazon Elastic Transcoder

通过以下方式节省成本并获得更多功能 AWS Elemental MediaConvert

MediaConvert 是一项较新的基于文件的视频转码服务,它提供了一套全面的高级转码功能,按需费率起价为每分钟 0.0075 美元。阅读更多

已经在使用 Amazon Elastic Transcoder? 迁移到很简单 MediaConvert。有关更多信息,请参阅本概述,其中包含有关迁移过程的重要信息以及指向其他资源的链接。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

向 Elastic Transcoder 发出 HTTP 请求

Elastic Transcoder REST 请求是 HTTPS 请求,如 RFC 2616 所定义的。(有关更多信息,请访问 http://www.ietf.org/rfc/rfc2616.txt。) 本部分介绍 Elastic Transcoder REST 请求的结构。有关您可以执行的操作的详细说明,请参阅 管道操作任务操作预设操作

典型的 REST 操作包括向 Elastic Transcoder 发送一个 HTTPS 请求,以及等待 HTTPS 响应。像任何 HTTP 请求一样,Elastic Transcoder 的 REST 请求包含请求方法、URI、请求标题,有时候包含查询字符串或请求主体。响应包含 HTTP 状态码、响应标题,有时候包含响应主体。

HTTP 标头内容

Elastic Transcoder 要求在 HTTP 请求标头中包含以下信息:

Host(必需)

Elastic Transcoder 指定资源创建位置的端点。该值必须为指定的区域端点。我们建议您为您的 Amazon S3 存储桶以及 Elastic Transcoder 管道和任务使用相同的端点。如果您使用不同的端点,则包含您的 Amazon S3 存储桶的区域和 Elastic Transcoder 在其中执行编码的区域之间的数据传输会产生额外费用。此外,数据传输所需的时间会延迟对转码文件的访问。

有关支持的 Elastic Transcoder 端点的列表,请转至 Amazon Web Services 常规参考中的区域和端点部分。

有关跨区域费用的更多信息,请参阅 Amazon S3 定价中的“数据传输定价”。

x-amz-date 或 Date (必需)

用于创建包含在 Authorization 标头中的签名的日期。采用 ISO 8601 标准格式以 UTC 时间指定日期,如以下示例所示:X-Amz-Date: 20130613T203622Z

必须包含 x-amz-dateDate。(有些 HTTP 客户端库不允许设置 Date 标头。) 当 x-amz-date 标头呈现时,系统在验证请求身份时会忽略任何 Date 标头。

当接收请求时,时间戳必须在 AWS 系统时间的 15 分钟内。如果不在此时间范围内,请求将失败,并出现 RequestExpired 错误代码,以防止其他人重放您的请求。

Authorization(必需)

请求身份验证所需的信息。有关构建此标头的更多信息,请参阅 签名请求

Content-Type(条件性)

指定 JSON 和版本,例如,Content-Type: application/x-amz-json-1.0

条件:对 POST 请求是必需的。

Content-Length(条件性)

符合 RFC 2616 的消息的长度(不带标头)。

条件:必需,如果请求主体本身包含信息(大多数工具包自动添加此标题)。

以下示例为创建管道所用的 HTTP 请求的标头。

POST /2012-09-25/pipelines HTTP/1.1 host: elastictranscoder.us-east-1.amazonaws.com:443 x-amz-date: 20120116T174952Z Authorization: AWS4-HMAC-SHA256 Credential=AccessKeyID/20120116/us-east-1/elastictranscoder/aws4_request,SignedHeaders=host;x-amz-date;x-amz-target,Signature=145b1567ab3c50d929412f28f52c45dbf1e63ec5c66023d232a539a4afd11fd9 content-type: application/x-amz-json-1.0 content-length: 231 connection: Keep-Alive

HTTP 请求正文

许多 Elastic Transcoder API 操作都要求您在请求正文中包含 JSON 格式的数据。JSON 符合 Elastic Transcoder 架构。

注意

请求正文中的 JSON 值为字符串。

例 请求

以下示例请求使用简单 JSON 语句创建一个任务,该任务对一个名为 sample.mp4 的文件执行转码并将其另存为 sams-birthday.mp4

POST /2012-09-25/jobs HTTP/1.1 Content-Type: application/json; charset=UTF-8 Accept: */* Host: elastictranscoder.us-east-1.amazonaws.com:443 Content-Length: 300 { "Input":{ "Key":"sample.mp4", "FrameRate":"auto", "Resolution":"auto", "AspectRatio":"auto", "Interlaced":"auto", "Container":"mp4" }, "OutputKeyPrefix":"family-videos/", "Outputs":[ { "Key":"sams-birthday.mp4", "ThumbnailPattern":"thumbnails/sams-birthday-{count}", "Rotate":"0", "PresetId":"1351620000000-100080" } ], "PipelineId":"1111111111111-abcde1" }

HTTP 响应

所有 Elastic Transcoder API 操作的响应中都包含 JSON 格式的数据。JSON 符合 Elastic Transcoder 架构。

注意

响应中的 JSON 值是字符串。

以下是 HTTP 响应中的一些重要标头,以及您在应用程序中对其进行处理的方法(如适用):

HTTP/1.1

此标头后跟状态代码。状态代码 200 表示操作成功。有关错误代码的信息,请参阅 API 错误代码(客户端错误和服务器错误)

类型:字符串

x-amzn-RequestId

Elastic Transcoder 创建的用于唯一标识您的请求的值,例如,K2QH8DNOU907N97FNA2GDLL8OBVV4KQNSO5AEMVJF66Q9ASUAAJG。如果您在使用 Elastic Transcoder 时遇到问题,AWS 可以使用这个值来解决问题。我们建议您记录这些值。

类型:字符串

内容长度

响应正文的长度(以字节为单位)。

类型:字符串

日期

Elastic Transcoder 响应的日期和时间,例如,Sun, 25 Mar 2012 12:00:00 GMT。日期的格式必须是 RFC 2616 第 3.3 节中指定的完整日期格式之一。

类型:字符串