2012-07-30 7 views
2

나는 내 레일 3 응용 프로그램 Zencoder를 통합하는이 튜토리얼을 다음 해요 : http://www.nickdesteffen.com/blog/video-encoding-with-uploadify-carrierwave-and-zencoder레일 3 : Amazon S3에서 작동하도록 Zencoder를 구성하는 방법은 무엇입니까?

튜토리얼은 스토리지 랙 스페이스를 사용을하지만, 내가 대신 저장을 위해 아마존 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 

답변

0

저도 같은 문제에 근무했습니다. 내 자격 증명 안개를 사용

나는 그렇게처럼 내 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

관련 문제