繁体   English   中英

Rails 3,Paperclip和从远程URL上传图像

[英]Rails 3, Paperclip and uploading image from remote url

我编写了一个简单的代码,它获取了一个图像的URL,并将其大小调整后的版本上传到Amazon S3存储。 代码如下所示:

  attr_accessor :profile_image_url

  has_attached_file :avatar, 
    :default_url => "/system/avatars/:style_default.png",
    :styles => { 
      :original => "128x128#",
      :thumb => "48x48#"
    },
    :storage => :s3, 
    :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
    :path => "/avatars/:id/:style.:extension"

  before_validation :download_profile_pic
...

  def download_profile_pic
    begin
      io = open(URI.parse(self.profile_image_url))
      def io.original_filename; base_uri.path.split('/').last; end
      self.avatar = io.original_filename.blank? ? nil : io  
    rescue Timeout::Error
      self.avatar = nil
    rescue OpenURI::Error => e
      self.avatar = nil
    end
  end

它有效,但图像上传的质量非常低。 可能有什么问题?

看起来问题是主图像大小上的几何字符串,请尝试更改:

:styles => { 
  :original => "128x128#",
  :thumb => "48x48#"
},

:styles => { 
  :original => "128x128>",
  :thumb => "48x48#"
},

如果尺寸太大,应该只调整图像大小/变换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM