相关疑难解决方法(0)

使用Carrierwave重命名上传的文件

我正在使用Carrierwave上传文件,我有它的工作.

我的问题是尝试更改上传文件的名称.

在生成的uploader.rb中有一个我认为我应该使用的方法

def filename
   "something.jpg" if original_filename
   basename = "what"+orginal_filename if original_filename, works
   basename = (0...8).map{65.+(rand(25)).chr}.join if original_filename  # will create a random name for each version, e.g. the orginal, the thumb, and the filename in the db, useless
 end
Run Code Online (Sandbox Code Playgroud)

我似乎无法访问sanitized_file.rb中的'extension'或'content_type'之类的项目,因此这有点超出我目前的技能水平.

这样做的任何建议或练习,即为上传的文件生成文件名,该文件与carrierwave默认值一样(什么都不做,但是会继续执行每个版本)?看起来它应该很简单,但我偶然发现了这一点.

ruby file-upload ruby-on-rails carrierwave

30
推荐指数
2
解决办法
2万
查看次数

如何为Carrierwave分配远程文件?

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

class Video
  require 'carrierwave/orm/activerecord'
  mount_uploader :attachment, VideoUploader
  mount_uploader :attachment_thumbnail, VideoThumbnailUploader
  ...
end
Run Code Online (Sandbox Code Playgroud)

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

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

但是,由于附件是由我们的编码服务创建的,该服务还将其上载到指定的S3存储桶.如何将附件分配给记录的attachment_thumbnail列?

我可以简单地做一些事情:

@video.update_attributes(
  :attachment_thumbnail => 'https://bucket_name.s3.amazonaws.com/uploads/users/1/video/1/thumb.png'
)
Run Code Online (Sandbox Code Playgroud)

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

ruby-on-rails amazon-s3 carrierwave

24
推荐指数
2
解决办法
3万
查看次数