【问题标题】:Rails 3: How to configure Zencoder to work with Amazon S3?Rails 3:如何配置 Zencoder 以使用 Amazon S3?
【发布时间】:2012-07-28 07:51:58
【问题描述】:

我正在按照本教程将 Zencoder 集成到我的 Rails 3 应用程序中:http://www.nickdesteffen.com/blog/video-encoding-with-uploadify-carrierwave-and-zencoder

本教程使用 Rackspace 进行存储,但我想修改代码以便可以使用 Amazon S3 进行存储。我用我的 Amazon S3 信息替换了所有 Rackspace 信息,但是每当我尝试在我的表单中上传视频时,我都会收到以下 HTTP 错误:“您尝试上传的文件出错。请验证它是正确的类型。”

我需要在此处解决什么问题才能使其正常工作?

carrierwave.rb

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',
    :aws_access_key_id      => 'xxx',
    :aws_secret_access_key  => 'xxx',
  }
  config.fog_directory  = 'mybucket'
  config.fog_public     = true
  config.fog_attributes = {'Cache-Control' => 'max-age=315576000'}
end

video_uploader.rb

class VideoUploader < CarrierWave::Uploader::Base
  include Rails.application.routes.url_helpers

  Rails.application.routes.default_url_options = ActionMailer::Base.default_url_options

  after :store, :zencode

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  def extension_white_list
    %w(mov avi mp4 mkv wmv mpg)
  end

  def filename
    "video.mp4" if original_filename
  end

  private 

  def zencode(args)
    zencoder_response = Zencoder::Job.create({:input => 's3://mybucket/key.mp4',
                      :outputs => [{:label => 'vp8 for the web',
                                    :url => 's3://mybucket/key_output.webm'}]})

    zencoder_response.body["outputs"].each do |output|
      if output["label"] == "web"
        @model.zencoder_output_id = output["id"]
        @model.processed = false
        @model.save(:validate => false)
      end
    end
  end

end

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 forms amazon-s3 zencoder


    【解决方案1】:

    我一直在处理同样的问题。

    使用 Fog 作为我的凭据,我创建了我的网址,如下所示:

    bucket = AttachmentUploader.fog_directory
    input = "s3://#{bucket}/#{self.path}"
    base_url = "s3://#{bucket}/#{store_dir}"
    

    查看我的要点了解更多详情:https://gist.github.com/4002368

    不要忘记允许 Zencoder 通过安全策略访问您的存储桶:https://app.zencoder.com/docs/guides/getting-started/working-with-s3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 2011-02-13
      相关资源
      最近更新 更多