Rails 3: Как настроить Zencoder для работы с Amazon S3?
Я следую этому руководству, чтобы интегрировать Zencoder в мое приложение на Rails 3: http://www.nickdesteffen.com/blog/video-encoding-with-uploadify-carrierwave-and-zencoder
В этом руководстве для хранения используется Rackspace, но я бы хотел адаптировать код, чтобы вместо него можно было использовать Amazon S3 для хранения. Я заменил всю информацию Rackspace своей информацией Amazon S3, но всякий раз, когда я пытаюсь загрузить видео в своей форме, я получаю эту ошибку 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
1 ответ
Я работал над той же проблемой.
Используя Fog для своих учетных данных, я создал свои URL-адреса примерно так:
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