Tag: 载波

carrierwave,Excon :: Errors :: MovedPermanently in RegistrationsController #update error

我一直试图让carrierwave与amazon s3合作。 代替 storage :s3 我有 storage :fog 将其更改为存储:s3立即出错 https://stackoverflow.com/questions/10629827/carrierwave-cant-convert-nil-into-string-typeerror-when-using-s3 所以我把它改成了存储:像下面的rdoc所说的雾。 http://rubydoc.info/gems/carrierwave/frames 然而,当我尝试上传图像时,我得到了这个疯狂的错误。 我正在使用设计gem。 我的完整堆栈跟踪是 Excon::Errors::MovedPermanently in RegistrationsController#update Excon::Errors::MovedPermanently (Expected(200) Actual(301 Moved Permanently) request => {:connect_timeout=>60, :headers=>{“Content-Length”=>95472, “Content-Type”=>”image/jpeg”, “x-amz-acl”=>”private”, “Cache-Control”=>”max-age=315576000”, “Date”=>”Thu, 17 May 2012 05:28:55 +0000”, “Authorization”=>”AWS AKIAIN6SC3YSGBSUKV4Q:kZOG9mG01jYn48ImFMYbgxAAQRk=”, “Host”=>”user.a.777.s3-eu-west-1.amazonaws.com:443″}, :instrumentor_name=>”excon”, :mock=>false, :read_timeout=>60, :retry_limit=>4, :ssl_ca_file=>”/Users/sasha/.rvm/gems/ruby-1.9.3-p125/gems/excon-0.13.4/data/cacert.pem”, :ssl_verify_peer=>true, :write_timeout=>60, :host=>”user.a.777.s3-eu-west-1.amazonaws.com”, :path=>”/uploads%2Fuser%2Fimage%2F59%2Fidea.jpg”, :port=>”443″, :query=>nil, :scheme=>”https”, :body=>#, :expects=>200, :idempotent=>true, :method=>”PUT”} […]

carrierwave extension_white_list无效

这是类似的情况,但没有解决方案CarrierWave extension_white_list似乎不起作用 Carrierwave提供了一个函数extension_white_list ,它应该阻止用户上传无效文件。 我已取消注释此function但如何处理此案例? 我想捕获此错误并通知用户他应该更改文件。 这个wiki条目似乎相关,但我不知道如何继续https://github.com/carrierwaveuploader/carrierwave/wiki/How-to%3A-Validate-uploads-with-Active-Record

如何在不使用表单的情况下以编程方式处理附件?

我有一个具有images列的LineItem类。 它属于Order类。 保存line_item , images列是逗号分隔的图像URL列表。 我想要从url创建一个拼贴,并将其保存为line_item实例的附件。 不过,我不知道从哪里开始。 知道我的工作流程应该是什么样的吗? 我应该使用CarrierWave吗? 图像处理应该在哪里发生? 在LineItem模型或CarrierWave提供的上传器文件中?

Rails 3和Paperclip – 我可以在S3和本地存储图像吗?

我们有一种情况,我们想开始在亚马逊的S3服务上托管图像,但我们不想将所有现有图像上传到S3,而是我们想要提供这些“遗留”图像,这些图像来自于时刻和前进将所有新图像上传到S3并显然为S3提供服务​​。 有没有人知道使用PaperClip或CarrierWave这是否可行? 谢谢!

单波模型的载波多重上传器

我已经在本教程https://kolosek.com/carrierwave-upload-multiple-images/的帮助下创建了一个库模块,现在我想再添加一个图像属性,将主图像添加到同一个模型中。 所以我提出再创建一个上传器,但我对如何调用控制器可以帮助我的人有点困惑? 我的代码如下所示: MOdel代码: class Image < ApplicationRecord belongs_to :gallery mount_uploader :image, ImageUploader mount_uploader :avatar, AvatarUploader end class Gallery < ApplicationRecord has_many :images accepts_nested_attributes_for :images end gallery_controller.rb class GalleriesController a, :gallery_id => @gallery.id) end format.html { redirect_to @gallery, notice: ‘Gallery was successfully created.’ } format.json { render :show, status: :created, location: @gallery } else format.html […]

Rails carrierwave S3获取带有Content-Disposition标头的url

我们使用carrierwave + aws S3上传文件,我们需要提供下载function。 对于解决方案1,我们使用: = link_to “Download”, file.doc.url, download: file.original_name 并且它在IE8下不起作用,单击该链接将打开此文件(图像)。 根据This ,我应该添加Content-Disposition标头, 然后我检查了aws S3文档, 发现我需要将response-content-disposition添加到file.doc.url , 我有什么方法可以在carrierwave中做到这一点,或者我可以用其他方式? 谢谢你的帮助。

CarrierWave + RMagick Square Crop?

我试图用Ruby on Rails,CarrierWave和RMagick制作一个固定的方形图像裁剪。 我试过以下两个都没有运气…… version :thumb do process :resize_to_fit => [200, 200] end 和 version :thumb do process :resize_to_limit => [200, 200] end resize_to_limit显然调整图像大小以适应指定的尺寸,同时保留原始高宽比。 所以这不对,但resize_to_fit也没有这样做。 我在这里查看所有可用的实例方法。 我希望能够上传任何宽高比和尺寸的图片,它将以200×200的速度出现。

使用Carrierwave上传文件时,没有路由匹配错误

我有一个简单的文件上传表单,用户应该能够从他们的机器中选择一个csv文件,然后将其保存到文件夹中。 我正在尝试使用Carrierwave,我的应用程序是在Ruby on Rails中构建的。 当我尝试保存文件时,出现错误“没有路由匹配[POST]”/ customers / new“。 以下是各种组件。 /new.html.erb {:multipart => true} do |f| %> /models/dataload.rb class Dataload < ActiveRecord::Base attr_accessible :file_name, :request_user, :source mount_uploader :file, CustomerWarrantyUploader end * /上传/ customer_warranty_uploader.rb * class CustomerWarrantyUploader < CarrierWave::Uploader::Base storage :file def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end def extension_white_list %w(csv) end * customers_controller.rb(新方法;我没有做任何事情)* def new @customer = Customer.new respond_to […]

在使用Carrierwave保存之前修改文件名

我有一个上传器,我已经实现了#filename方法来获取自定义和唯一的文件名,但在保存文件之前看起来这个方法被忽略了(我上传到带有gem gem的rackspace) 这是上传者: class MyImageUploader < CarrierWave::Uploader::Base include CarrierWave::RMagick … def filename if original_filename.present? "#{secure_token}.#{file.path.split('.').last.downcase}" else super end end … private def secure_token var = :"@#{mounted_as}_secure_token" model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.uuid) end end 这是控制台中的一个测试(我正在测试一个大文件名的问题,我认为这个问题是用自定义的#filename方法解决的): 1.9.3-p392 :002 > f = File.open(‘/Users/myuser/Desktop/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.png’) => # 1.9.3-p392 :003 > my_model_instance.image = f Errno::ENAMETOOLONG: File name too long – /Users/myuser/app/tmp/uploads/20130509-1723-16769-8458/thumb_lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat4lolcat.png from […]

Rails将Paperclip目录结构转换为Carrierwave

我使用的是Paperclip gem: https : //github.com/thoughtbot/paperclip 我现在正在使用Carrierwave: https : //github.com/carrierwaveuploader/carrierwave 我的制作网站目前正在使用Paperclip。 我将更新生产网站以使用Carrierwave。 Paperclip上传的文件夹结构与Carrierwave不同。 我也使用Amazon S3来存储上传。 我想知道是否有办法将使用Paperclip上传的生产文件转换为Carrierwave。 例如,在制作中使用Paperclip时,我现在有类似以下内容的简历: BUCKET_NAME / MODEL_NAME /恢复/ 000/000 / MODEL_ID /原厂/检验.pdf 使用Carrierwave它应该是: BUCKET_NAME /上传/模型名称/恢复/ MODEL_ID /原厂/检验.pdf 现在看来我必须手动进行这种转换。 我想知道是否有更好的方法。 请指教。