Ruby on rails 回形针:阻止上传原始文件
我有一个视频模型,它当前接受一个视频url,而不是一个多部分视频文件 视频通过应用程序上传到S3 bucket上 现在在这里,我只想上传样式图像和处理器视频(在每帧上附加时间戳值) 但原始视频仍从url上传到服务器。我已经将视频上传到S3,不想通过回形针重复这个过程 有没有办法限制上传原始视频 Video.rbRuby on rails 回形针:阻止上传原始文件,ruby-on-rails,video,amazon-s3,Ruby On Rails,Video,Amazon S3,我有一个视频模型,它当前接受一个视频url,而不是一个多部分视频文件 视频通过应用程序上传到S3 bucket上 现在在这里,我只想上传样式图像和处理器视频(在每帧上附加时间戳值) 但原始视频仍从url上传到服务器。我已经将视频上传到S3,不想通过回形针重复这个过程 有没有办法限制上传原始视频 Video.rb 您可以覆盖原始类型,并将其用作大型。例如: has_attached_file :video, styles: { timestamped: { processors: %i[
您可以覆盖
原始
类型,并将其用作大型
。例如:
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
事实上,这是最主要的问题。我不想要任何其他风格,除了我已经直接上传到S3的原创风格。但是,当通过回形针上传url时,原始(再次)出现了。因此,我的答案的第一个解决方案应该适合您的需要。我尝试了您的第一个解决方案,但它仍在原始文件夹中上载jpeg文件。我可以稍后删除它,但这将是一个问题,因为它将增加S3的PUT操作,并且对于大型应用程序来说成本高昂。
after_save :reprocess_video
private
def reprocess_video
File.unlink(video.path)
end