前几天我刚开始使用 boto,但之前的答案对我不起作用 - 不知道 API 是否发生了变化或发生了什么变化(如果确实发生了变化,这似乎有点奇怪,但无论如何)。我就是这样做的。
#!/usr/bin/env python
# Boto
import boto
# Debug
boto.set_stream_logger('boto')
# Pipeline Id
pipeline_id = 'lotsofcharacters-393824'
# The input object
input_object = {
'Key': 'foo.webm',
'Container': 'webm',
'AspectRatio': 'auto',
'FrameRate': 'auto',
'Resolution': 'auto',
'Interlaced': 'auto'
}
# The object (or objects) that will be created by the transcoding job;
# note that this is a list of dictionaries.
output_objects = [
{
'Key': 'bar.mp4',
'PresetId': '1351620000001-000010',
'Rotate': 'auto',
'ThumbnailPattern': '',
}
]
# Phone home
# - Har har.
et = boto.connect_elastictranscoder()
# Create the job
# - If successful, this will execute immediately.
et.create_job(pipeline_id, input_name=input_object, outputs=output_objects)
显然,这是一个人为的例子,只是从一个独立的 python 脚本运行;它假设您在某处有一个 .boto 文件,其中包含您的凭据。
另一件需要注意的是 PresetId 的;您可以在 Elastic Transcoder 的 AWS 管理控制台的 Presets 下找到这些。最后,可以从以下链接逐字提取字典中可以填充的值 - 据我所知,它们只是插入到 REST 调用中(显然区分大小写)。
AWS 创建作业 API