生成图片文件大小上传RSS

时间:2012-12-25 11:12:19

标签: ruby-on-rails paperclip

我通过回形针(在rails中)上传图片。此图片将显示在rss Feed中。对于RSS提要,我需要填写字段长度,告诉客户端我猜的文件长度。

附加文件本身很容易,因为有一个列file_size,但是如果图片是后期处理并且我想要包含这张图片怎么办?如何获得文件大小?

代码:

pic.rb

class Pic < ActiveRecord::Base

  has_attached_file :image, 
                    :styles => { 
                      :mail => "780x540>", 
                      :medium => "260x180>", 
                      :thumb => "130x90>",
                    }, 
                    :storage => :s3
end

rss.rb

xml.instruct! :xml, version: "1.0" 
xml.rss version: "2.0" do
  xml.channel do

    @ps.each do |p|
        xml.item do
        xml.title       p.title
        xml.description p.description.truncate(250)
        xml.pubDate     p.starts_at.to_s(:rfc822)
        xml.link        p.uri_name
        xml.guid        p.uri_name
        xml.enclosure   url: p.pic(:medium), type: "image/jpeg", length: ??
      end
    end
  end
end

应该很容易,但是..

1 个答案:

答案 0 :(得分:0)

找到解决方案:

因为它存储在s3上,我可以通过http ..

获取信息

在pic.rb中

  def content_length(size)
    parts = URI.parse image.url(size)
    Net::HTTP.start(parts.host, parts.port) do |http|
      response = http.request_head parts.path
      file_size = response['content-length']
    end
  end