我正在将我的项目从带有attachment_fu的Rails2升级到带有carrierwave的Rails3。我有一个现有的数据库和文件目录,其中包含使用attachment_fu上传的图像。问题是,在attachment_fu中,上传图像时会在文件名(my_image_small.jpg)后面附加图像版本(thumb、small、medium等),而在carrierwave中,默认情况下会在文件名后面附加图像版本(small_my_image.jpg)。我该在carrierwave的什么地方修改它呢?
这是我的FileUploader:
# encoding: utf-8
class Fi
主要问题发生在它处理召回时。
所有从苹果iOS上传的视频都会处理得很好。但是所有从Android设备上传的视频都变得不正确了。
在我的rails应用程序中,我使用的是载波:视频和FFMPEG来处理延迟作业的视频。
class VideoUploader < CarrierWave::Uploader::Base
include CarrierWave::Video
include CarrierWave::Video::Thumbnailer
# For carrierwave_backgrounder
include ::CarrierWave::Backgroun
使用CarrierWave和亚马逊S3,我可以存储本地文件中的图片,但当我尝试存储某些url中的图片时,我得到'TypeError:无法将nil转换为字符串‘
from /Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/carrierwave-0.5.8/lib/carrierwave/uploader/cache.rb:149:in `join'
from /Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1
我正在尝试将carrierwave设置为carrierwave_backgrounder、delayed_job和fog,以便在AWS S3上进行存储。
每当我试图在控制台中做任何事情,比如生成控制器,我都会得到这个错误:
ruby-1.9.3-p194/gems/carrierwave_backgrounder-0.0.9/lib/carrierwave_backgrounder.rb:19:in `backend': wrong number of arguments (1 for 0) (ArgumentError)
罪魁祸首似乎是我的初始化器文件backgrounder.rb,
我正在尝试使用载波,它可以很好地上传文件,但是我希望我的mp4文件在公共/上传目录中。它将其添加到那里,但将其放入一个tmp/某个奇怪的id文件夹中。我只想让mp4文件公开/上传。这个是可能的吗?如果是这样的话,是怎么做的?我尝试过编辑cache_dir,但它仍然添加了那个奇怪的id文件夹。
以下是目前为止的代码:
class VideoUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
# include
该应用程序在开发中运行良好,但在生产中,当我尝试使用Carrierwave上传文件时,收到Errno::EACCES权限被拒绝错误。我确信这与权限有关。如何设置允许上传文件的权限?
pdf_uploader.rb
def store_dir
"#{Rails.root}/uploads/#{model.id}"
end
def cache_dir
"#{Rails.root}/tmp/uploads/cache/#{model.id}"
end
我希望在我的S3存储桶中有不同的文件夹,以保持生产数据库与开发环境的清晰度。我不确定该怎么做,下面是我在carrierwave初始化器中想出的框架:
if Rails.env.test? or Rails.env.development?
CarrierWave.configure do |config|
//configure dev storage path
end
end
if Rails.production?
CarrierWave.configure do |config|
//configure prod storage path
e
我正在从回形针切换到CarrierWave,并且在我的上传工具中包含CarrierWave::MiniMagick时得到以下错误。
=> Booting WEBrick
=> Rails 4.2.4 application starting in development on http://localhost:3000
=> Run rails server -h for more startup options
=> Ctrl-C to shutdown server
Exiting
bin/rails:6: warning: already initialized
因此,每当我使用Carrierwave在Rails中以开发模式上传文件时,我都会在Rails根目录中获得这些临时RackMultipart*文件。即使在config/carrierwave.rb中,我也有以下设置:
CarrierWave.configure do |config|
config.cache_dir = 'tmp/uploads'
end
不,我没有在上传程序中更改缓存目录。最糟糕的是,似乎每上传一个新文件,它都会创建两个相同的(在内容上,但在名称上) RackMultipart*文件。你知道怎么解决这个问题吗?
我不能在自定义类中调用CarrierWave current_path。
NoMethodError: private method `try' called for #<CarrierWave::SanitizedFile:0x007fadf259fbf8>
def send_letter(letter)
data = {}
data[:attachment] = File.new("#{letter.template.attachment.current_path}", 'rb')
end
这在letter.temp
我正在尝试设置Carrierwave和Fog来处理我在AWS的Elastic Beanstalk上托管的rails应用程序上的图像和文件上传。
我对如何正确设置Fog配置有点困惑。
我尝试使用我的AWS访问和密钥(在下面的示例中注释掉)。通过我的EB上的错误(错误: NotAuthorizedError -操作被拒绝。请求中包含的安全令牌无效。)
我正在使用IAM,而不是在我的ruby代码中使用访问/密码。有人能告诉我如何正确设置吗?
下面是我的配置文件:
CarrierWave.configure do |config|
# Use local storage if in devel
我正在使用carrierwave上传我的文件到S3的私有存储桶,carrierwave的策略是“bucket和Object不是公共的”。 现在,当我试图为私有存储桶中的对象生成一个带有@docuemnt.pdf_file.url的访问url时,我得到了一个错误“bucket_name is required”,即使在将bucketname作为@docuemnt.pdf_file.url 'privatebucketname'传递之后,我也得到了一个错误“ArgumentError: Version privatebucketname doesn't exist!”。