将缓存控制元数据添加到 AWS 弹性转码器输出


Add Cache-Control Metadata to AWS Elastic Transcoder Output

我目前正在将视频上传到 S3 存储桶,然后使用 AWS Elastic Transcoder 创建 webm 文件并输出缩略图。所有这些都在工作,除了我无法在 ET 文件上设置任何元数据。

我正在尝试将缓存控制添加到 webm 和缩略图中,但我无法在 PHP SDK 中找到允许它的任何地方。

我知道我可以做一个 S3 copyObject 并以这种方式添加元数据,但这似乎很麻烦。

以下是我的 ET 作业创建代码。

$result = $client->createJob(array(
    'PipelineId' => 'my-pipeline-id',
    'Input' => array(
        'Key' => $mp4Name,
        'FrameRate' => 'auto',
        'Resolution' => 'auto',
        'AspectRatio' => '16:9',
        'Interlaced' => 'auto',
        'Container' => 'mp4',
    ),
    'Outputs' => array(
        array(
            'Key' => $awsOutWebm,
            'ThumbnailPattern' => $thumbOut,
            'Rotate' => '0',
            'PresetId' => 'my-preset-id',
            'Watermarks' => array(
                array(
                    'PresetWatermarkId' => 'BottomRight',
                    'InputKey' => 'logo.png',
                ),
            ),
        ),
    ),
));

据我所知,没有办法告诉 Elastic Transcoder 您要为输出对象设置哪些标头。

我能想到的一种简单的方法来实现您正在寻找的目标,即使用 Lambda 函数。您可以将其配置为在每次成功的转码(使用 SNS 通知)上运行,并在输出对象上设置标头。