【问题标题】:Uploading video with Rails/Paperclip to Heroku/S3使用 Rails/Paperclip 上传视频到 Heroku/S3
【发布时间】:2015-10-29 20:42:47
【问题描述】:

我在 Heroku 上以生产模式上传视频的时间太长了,测试本地作品在调整大小和创建缩略图方面效果很好。图像在我的 S3 存储桶中也可以正常工作,因此凭据一切正常。

这是我通常从下面使用的代码中获得的日志。顺便说一句,在我得到这些日志之前的尝试(没有更改任何代码并使用相同的测试视频),视频进入了 AWS,只是没有调整大小或创建缩略图。但那是我唯一一次做到这一点,然后立即发生上传失败和 500 错误。

$ heroku 日志

2015-08-06T15:38:39.732913+00:00 app[web.1]: Started POST "/work/create" for 104.162.101.0 at 2015-08-06 15:38:39 +0000
2015-08-06T15:38:39.696998+00:00 app[web.1]: source=rack-timeout id=dd06eb06-cad5-4236-8788-e5f59f7fe631 wait=7850ms timeout=15000ms service=0ms state=active
2015-08-06T15:38:39.734677+00:00 app[web.1]: Processing by WorksController#create as HTML
2015-08-06T15:38:39.734744+00:00 app[web.1]:   Parameters: {"utf8"=>"✓", "authenticity_token"=>"9edyQVZm68aW+majARmNcDR1dwpE59ZrWEZ4/G07ADYhlZyYiJ+RwYK4GBguQZbrlS6J4yDbMsMIxcvWLD3aUA==", "work"=>{"position"=>"", "media_type"=>"video", "video"=>#<ActionDispatch::Http::UploadedFile:0x007efee96e14e8 @tempfile=#<Tempfile:/tmp/RackMultipart20150806-3-1mu6ibh.mp4>, @original_filename="FA14 final_compilation_mg4d_H.264.mp4", @content_type="video/mp4", @headers="Content-Disposition: form-data; name=\"work[video]\"; filename=\"FA14 final_compilation_mg4d_H.264.mp4\"\r\nContent-Type: video/mp4\r\n">, "designer"=>""}}
2015-08-06T15:38:40.030596+00:00 heroku[router]: at=info method=POST path="/work/create" host=purchasedesign.herokuapp.com request_id=dd06eb06-cad5-4236-8788-e5f59f7fe631 fwd="104.162.101.0" dyno=web.1 connect=1ms service=8181ms status=500 bytes=192
2015-08-06T15:38:40.017315+00:00 app[web.1]: Command :: file -b --mime '/tmp/9b4d56c6bf75dc6718768cda6940025a20150806-3-14gq1uq.mp4'
2015-08-06T15:38:40.025037+00:00 app[web.1]: [AV] Running command: if command -v ffmpeg 2>/dev/null; then echo "true"; else echo "false"; fi
2015-08-06T15:38:40.028329+00:00 app[web.1]: 
2015-08-06T15:38:40.028332+00:00 app[web.1]: Av::UnableToDetect (Unable to detect any supported library):
2015-08-06T15:38:40.028333+00:00 app[web.1]:   app/controllers/works_controller.rb:18:in `create'
2015-08-06T15:38:40.028335+00:00 app[web.1]: 
2015-08-06T15:38:40.028336+00:00 app[web.1]: 
2015-08-06T15:38:40.028629+00:00 app[web.1]: source=rack-timeout id=dd06eb06-cad5-4236-8788-e5f59f7fe631 wait=7850ms timeout=15000ms service=332ms state=completed
2015-08-06T15:38:40.023226+00:00 app[web.1]: [AV] Running command: if command -v avprobe 2>/dev/null; then echo "true"; else echo "false"; fi
2015-08-06T15:38:40.027118+00:00 app[web.1]: Completed 500 Internal Server Error in 292ms

models/work.rb

has_attached_file :video,
    :styles => {
        :mp4 => {
            :geometry => "640x480",
            :format => 'mp4',
        },
        :thumb => {
            :geometry => '300x300',
            :format => 'jpg',
            :time => 10
        }
    },
    :processors => [:transcoder]

宝石文件

gem 'aws-sdk', '< 2.0'
gem 'paperclip', '~> 4.2'
gem 'paperclip-ffmpeg', '~> 1.0.0'
gem 'paperclip-av-transcoder'
gem 'delayed_paperclip'
gem 'rmagick', '~> 2.13.4'

config/environments/production.rb

config.paperclip_defaults = {
   :storage => :s3,
   :s3_credentials => {
     :bucket => ENV['S3_BUCKET_NAME'],
     :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
     :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
   }
}

任何帮助都会令人难以置信

【问题讨论】:

  • 它已经在里面了,如我的帖子所示
  • 对构建包一无所知,但我开始认为这可能是我的解决方案。等待有人将 heroku 应用程序所有权归还给我以安装它。谢谢!

标签: ruby-on-rails heroku amazon-s3 ffmpeg paperclip


【解决方案1】:

看看这个Heroku ffmpeg buildpacks for video uploads

你需要在heroku中设置一些东西

touch .buildpacks
touch Procfile

【讨论】:

    猜你喜欢
    • 2017-09-03
    • 2012-02-22
    • 2012-09-23
    • 2011-05-02
    • 1970-01-01
    • 2014-10-23
    • 2011-09-14
    • 2014-01-18
    • 2012-12-30
    相关资源
    最近更新 更多