Tag: carrierwave

无法validation证书 – 请设置’ENV = path_to_file’

我有一个使用Carrierwave上传文件的Rails 4应用程序。 安装Fog以将文件上传到Amazon 3后,我在上传文件时开始收到以下错误: Excon::Errors::SocketError in VideosController#create Unable to verify certificate, please set `Excon.defaults[:ssl_ca_path] = path_to_certs`, `ENV[‘SSL_CERT_DIR’] = path_to_certs`, `Excon.defaults[:ssl_ca_file] = path_to_file`, `ENV[‘SSL_CERT_FILE’] = path_to_file`, `Excon.defaults[:ssl_verify_callback] = callback` (see OpenSSL::SSL::SSLContext#verify_callback), or `Excon.defaults[:ssl_verify_peer] = false` (less secure). 我很困惑,因为我已将“SSL_CERT_FILE”添加到我的环境路径(通过控制面板在用户和系统变量下),将其设置为c:/RailsInstaller/cacert.pem(并重新启动我的计算机)。 当我的控制器在controllers / videos_controller中调用@ video.save时,错误就出现了: class SessionsController < ApplicationController def create @video = Video.new(video_params) if @video.save redirect_to videos_path, notice: […]

如何使用Carrierwave和MiniMagick(Ruby on Rails)将PDF转换为图像数组

我正在将上传的PDF转换为图像,每页只有一个图像。 我已经想出如何使用MiniMagick::Tool::Convert生成图像,但我不知道如何为Uploader编写version块,以便我可以访问图像URL数组。 到目前为止,这是我的上传者: class DocumentUploader < CarrierWave::Uploader::Base include CarrierWave::MiniMagick storage :file # storage :fog def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end version :jpg do process :convert_to_images process :set_content_type_jpg def convert_to_images(*args) image = MiniMagick::Image.open(current_path) image.pages.each_with_index do |page, index| MiniMagick::Tool::Convert.new do |convert| convert.background 'white' convert.flatten convert.density 300 convert.quality 95 convert << page.path convert << "#{CarrierWave.root}/#{store_dir}/image-#{index}.jpg" end end end end def […]

Rails4:如何使用carrierwave显示和编辑上传的文件?

我可以上传文件并将文件名保存在数据库中。 但是,当我编辑时,文件名不会出现。 我想: 单击_article.html.erb中的“编辑”链接时,显示文件名和上传的图像。 在_article.html.erb中显示上传的图像。 article.rb class Article < ActiveRecord::Base . . has_many :photos, dependent: :destroy accepts_nested_attributes_for :photos . . end photo.rb class Photo < ActiveRecord::Base belongs_to :article mount_uploader :image, ImageUploader validates :image, presence: true #validates :article_id, presence: true end .schema文章 CREATE TABLE “articles” (“id” INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, “content” varchar(255), “user_id” integer, […]

Carrierwave处理的图像未上传到AWS S3

类似的问题,这个问题,但提供的解决方案并没有解决我的问题。 Carrierwave处理的图像未上传到S3 使用Railscast#383作为代码的基础: http : //railscasts.com/episodes/383-uploading-to-amazon-s3 使用carrierwave_direct将图像成功上传到S3。 我想用sidekiq在后台处理图像,然后上传到S3。 sidekiq工作者完成图像处理而没有错误,但处理后的图像(:thumb和:large)本地存储在public / uploads文件夹中。 知道为什么处理后的图像没有上传到S3? 提供者: class ImageUploader [200, 200] end version :large do process :resize_to_limit => [600, 400] end def extension_white_list %w(jpg jpeg gif png) end end 模型: class Photo :create has_many :comments, as: :commentable def image_name File.basename(image.path || image.filename) if image end def enqueue_image ImageWorker.perform_async(id, key) […]

Rails载波测试 – 如何在测试后删除文件?

我正在使用rspec和capybara测试carrierwave上传function。 我有类似的东西: describe “attachment” do let(:local_path) { “my/file/path” } before do attach_file(‘Attachment file’, local_path) click_button “Save changes” end specify {user.attachment.should_not be_nil} it { should have_link(‘attachment’, href: user.attachment_url) } end 这很有效。 问题是测试后上传的图像仍然在我的public / uploads目录中。 测试完成后如何将其删除? 我试过这样的事情: after do user.remove_attachment! end 但它不起作用。

Carrierwave在本地不存储s3上的图像

我使用载波上传图像并将其显示在照片库中。 载波在public/uploads存储文件。 但是这些图像没有在heroku上显示。 我发现heroku是只读的,我们应该在s3存储文件。 除了s3之外还有其他选择吗?如果是的话,请你在这里分享一下吗?

Carrierwave获取图像宽度和高度并将其存储在hstore字段中

我的FileHandler模​​型可以允许所有类型的文件 class FileHandler value) end end 还有我的fileUploader类 class FileUploader :image? do process :resize_to_limit => [760, nil] end version :thumb_big, :if => :image? do process :resize_to_limit => [200, 200] end version :thumb, :if => :image? do process :resize_to_limit => [160, 160] end version :tiny, :if => :image? do process :resize_to_limit => [40, 40] end protected def […]

使用Dropzone JS的Carrierwave。 是否可以将这些与嵌套属性一起使用?

目前,我有几种使用嵌套属性的表单。 我最近发现了Dropzone JS,所以我希望以我正在使用的各种forms实现它。 我有两个类似的模型: 游戏 class Games < ActiveRecord::base has_many :screenshots, dependent: :destroy accepts_nested_attributes_for :screenshots, allow_destroy: true end 截图 class Screenshot < ActiveRecord::Base belongs_to :game mount_uploader :ssfile, ScreenshotUploader end 通常,我会用这样的东西来处理它: new.html.haml – content_for :breadcrumbs do %h3.text-center New Game .col-md-12#content .row = render ‘form’ .row .col-md-12 = link_to ‘Back’, games_path _form.html.haml .col-md-12 = form_for @game, :html […]

需要更改S3 Bucket(Carrierwave / Fog)中文件的存储“目录”

我正在使用带有3个独立模型的Carrierwave将照片上传到S3。 我保留了上传器的默认设置,即将照片存储在根S3存储桶中。 然后我决定根据模型名称将它们存储在子目录中,例如/ avatars,items /等等,根据它们从上传的模型… 然后,我注意到同名文件被覆盖,当我删除模型记录时,照片没有被删除。 我已经从上传者特定的设置更改了store_dir,如下所示: def store_dir “items” end 在模型ID下存储照片的通用版(我使用mongo FYI): def store_dir “uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}” end 这就是问题所在。 我试图将已经进入S3的所有照片移动到S3中的正确“目录”中。 从我准备好的,S3本身没有目录。 我在使用rake任务时遇到了麻烦。 由于我更改了store_dir,因此Carrierwave正在查找之前上传到错误目录中的所有照片。 namespace :pics do desc “Fix directory location of pictures on s3” task :item_update => :environment do connection = Fog::Storage.new({ :provider => ‘AWS’, :aws_access_key_id => ‘XXXX’, :aws_secret_access_key => ‘XXX’ }) directory = connection.directories.get(“myapp-uploads-dev”) Recipe.all.each […]

如何测试carrierwave文件是否已更改?

我正在尝试测试我的代码上是否使用载波更改了图像,但我找不到这样做的方法。 即使文件无效,似乎对象也被标记为已更改,因此它并未真正更改。 查看以下输出: (rdb:1) job.translated_xliff # (rdb:1) job.changed? false # As expected, didn’t changed yet (rdb:1) job.translated_xliff = “foo” “foo” (rdb:1) job.changed? true # Changed? “foo” is not a valid file. Lets see the file again… (rdb:1) job.translated_xliff # # same object ID! 如何检查我的代码上是否真的更改了此对象? 编辑:我在github上打开了一个问题 ,但问题仍未解决,但可以在那里找到更多信息