0

ペーパークリップを介して(レールで)写真をアップロードします。この画像は RSS フィードに表示されます。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

簡単なはずなのに..

4

1 に答える 1

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
于 2012-12-27T15:11:56.937 に答える