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

Ruby 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[

我有一个视频模型,它当前接受一个视频url,而不是一个多部分视频文件

视频通过应用程序上传到S3 bucket上

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

但原始视频仍从url上传到服务器。我已经将视频上传到S3,不想通过回形针重复这个过程

有没有办法限制上传原始视频

Video.rb


您可以覆盖
原始
类型,并将其用作
大型
。例如:

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