回形针:阻止原始文件上传

时间:2017-07-11 05:21:13

标签: ruby-on-rails video amazon-s3

我有一个视频模型,目前接受视频网址而不是多部分视频文件。

视频通过应用程序上传到S3存储桶。

现在我在这里只想上传样式图像和处理器视频(在每个帧上附加时间戳值)。

但原始视频仍然是从网址上传到服务器的。我已经将视频上传到S3,并且不想通过回形针重复此过程。

限制原始视频上传的任何方式

Video.rb

has_attached_file :video, styles: {
    timestamped: { processors: %i[ timestamper ] },
    small: ['640x', :jpeg],
    medium: ['750x', :jpeg],
    large: ['1242x', :jpeg]
}

1 个答案:

答案 0 :(得分:0)

您可以覆盖original类型并将其用作large。例如:

has_attached_file :video, styles: {
    timestamped: { processors: %i[ timestamper ] },
    original: ['1242x', :jpeg],
    medium: ['750x', :jpeg],
    small: ['640x', :jpeg]
}
小心将原件用作"基座"对于其他风格。

另一种解决方案是在流程后取消链接文件,但这意味着该文件首先上传:

after_save :reprocess_video

private

def reprocess_video
    File.unlink(video.path)
end