在S3视频上传时触发Lamdba吗?

时间:2019-03-13 03:48:40

标签: ruby amazon-web-services amazon-s3 aws-lambda amazon-elastic-transcoder

我正在测试在视频上传后添加水印。我遇到了一个问题,lamdba要我指定要在上传时更改的文件。但我希望它在任何文件(实际上是任何以.mov,.mp4等结尾的文件)上传时触发。

为澄清起见,这一切都在创建管道和作业时手动完成。

这是我的代码:

    require 'json'
    require 'aws-sdk-elastictranscoder'


    def lambda_handler(event:, context:)
      client = Aws::ElasticTranscoder::Client.new(region: 'us-east-1')

        resp = client.create_job({
      pipeline_id: "15521341241243938210-qevnz1", # required
      input: {
        key: File, #this is where my issue
        },
      output: {
    key: "CBtTw1XLWA6VSGV8nb62gkzY",
    # thumbnail_pattern: "ThumbnailPattern",
    # thumbnail_encryption: {
    #   mode: "EncryptionMode",
    #   key: "Base64EncodedString",
    #   key_md_5: "Base64EncodedString",
    #   initialization_vector: "ZeroTo255String",
    # },
    # rotate: "Rotate",
    preset_id: "1351620000001-000001",
    # segment_duration: "FloatString",
    watermarks: [
      {
        preset_watermark_id: "TopRight",
        input_key: "uploads/2354n.jpg",
        # encryption: {
        #   mode: "EncryptionMode",
        #   key: "zk89kg4qpFgypV2fr9rH61Ng",
        #   key_md_5: "Base64EncodedString",
        #   initialization_vector: "ZeroTo255String",
        # },
      },
    ],
  }
  })

end

我如何仅指定上传的any文件或特定格式的文件?作为输入:键:?

现在,我的问题是我正在使用活动存储,因此它不会以.jpg或.mov等结尾,它只是一个随机生成的字符串(它们有这样做的理由)。我正在尝试找到使用主动存储的原因,这是我使主动存储像其他替代产品一样工作的最后一步。

1 个答案:

答案 0 :(得分:0)

扩展名字段是可选的。如果您未指定任何内容,则无论上传什么文件,lambda都会被触发。然后,您可以检查它是否是您想要的文件类型,然后继续。