ruby-on-rails - 如何将远程文件分配给 Carrierwave?

标签 ruby-on-rails amazon-s3 carrierwave

我有具有以下定义的视频模型:

class Video
  require 'carrierwave/orm/activerecord'
  mount_uploader :attachment, VideoUploader
  mount_uploader :attachment_thumbnail, VideoThumbnailUploader
  ...
end

当我上传视频文件时。它还将文件发送到我们的编码服务 Zencoder,后者对视频文件进行编码并为其创建缩略图。

通常,我可以执行类似@video.attachment.url 的操作,它会返回视频文件的路径。我想对缩略图做同样的事情。即@video.attachment_thumbnail.url

但是,由于附件是由我们的编码服务创建的,它也会将其上传到指定的 S3 存储桶。如何将附件分配给记录的附件缩略图列?

我可以简单地做一些类似的事情:
@video.update_attributes(
  :attachment_thumbnail => 'https://bucket_name.s3.amazonaws.com/uploads/users/1/video/1/thumb.png'
)

是否可以将这样的文件分配给 Carrierwave?

最佳答案

您可以执行以下操作:

@video.remote_attachment_thumbnail_url = 'https://bucket_name.s3.amazonaws.com/uploads/users/1/video/1/thumb.png'

但这将导致 Carrierwave 下载并重新处理文件,而不仅仅是将其设为缩略图。如果您不打算使用 Carrierwave 的处理,那么将 URL 存储到模型上的缩略图可能比使用 Carrierwave 更有意义。

关于ruby-on-rails - 如何将远程文件分配给 Carrierwave?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5007575/

相关文章:

ruby-on-rails - 索引中 instance_variable 的 RSpec

ruby-on-rails - 使用雾/webmock 进行 Rails 测试

ruby-on-rails - Ruby on Rails send_file, Controller 操作中的代码运行两次

ruby-on-rails - Rspec 测试以 'rspec' 失败,但以 'rspec path_of_the_file' 失败

jquery - 将 Rails 表单中字符串类型的数据转换为日期

amazon-web-services - 使用 Deploy 命令的 Cloudformation CLI 参数

amazon-web-services - EMR 上 Hadoop 作业的 S3 文件的最佳文件大小?

amazon-web-services - 使用 CLI 从所有 s3 对象中删除加密

ruby-on-rails - 图像未删除 Carrierwave

ruby-on-rails - Nginx、Puma、Ubuntu 20.04 错误 111 : Connection refused