0

video_uploader.rbAusgabe mit Carrierwave_Direct + Rails

class VideoUploader < CarrierWave::Uploader::Base 
    include CarrierWaveDirect::Uploader 
    alias_method :extension_white_list, :extension_whitelist 
    def will_include_content_type 
    true 
    end 
    default_content_type 'video/mp4' 
    allowed_content_types %w(video/mpeg video/mp4 video/ogg) 
end 

Model.rb

class Video < ActiveRecord::Base 
    mount_uploader :videosub, VideoUploader 
end 

Parameter:

"videosub"=>#<ActionDispatch::Http::UploadedFile:0x007f87201e28 @tempfile=#<Tempfile:/tmp/RackMultipart20170509-4704-1mjrwq.mp4>, @original_filename="168C7704-4337-A870-007B2CB22519.mp4", @content_type="video/mp4 

Fehler zeigt, ist:

Validation failed: Videosub is invalid. 

Und wenn ich den Code in VideoUploader wie ersetzen:

class VideoUploader < CarrierWave::Uploader::Base 
    include CarrierWaveDirect::Uploader 
    alias_method :extension_white_list, :extension_whitelist 
    storage :fog 
end 

Dann wird die Datei erfolgreich S3 hochgeladen werden wird. Aber in meinem Fall muss ich das Video im Hintergrund und direkt auf S3 hochladen, indem ich den Server überspringe, auf dem die App gehostet wird.

Bitte helfen!

Antwort

0

Die Lösung gefunden: Früher habe ich den Edelstein aufgenommen, indem ich den Github-Pfad des Repos definiert habe. Später beseitigte ich den Weg. Und es hat funktioniert.