2011-09-19 17 views
12

अमेज़ॅन एस 3 का उपयोग करते समय मैं पेपरक्लिप के साथ पथ कैसे बना सकता हूं?पेपरक्लिप और अमेज़ॅन एस 3 पथ कैसे करें?

मेरी बाल्टी पर मेरे निर्देशिका है:

/image/:id/:filename 

मेरे मॉडल:

has_attached_file :image, 
    :storage => :s3, 
    :bucket => 'mybucket', 
    :s3_credentials => { 
     :access_key_id => ENV['S3_KEY'], 
     :secret_access_key => ENV['S3_SECRET'] 
    } 

उत्तर

18

इस प्रयास करें:

has_attached_file :image, 
    :storage => :s3, 
    :bucket => 'mybucket', 
    :path => "/image/:id/:filename", 
    :s3_credentials => { 
     :access_key_id => ENV['S3_KEY'], 
     :secret_access_key => ENV['S3_SECRET'] 
    } 
10

मैं कुछ महीने पहले इस बारे में एक पोस्ट में लिखा था। मैंने यह भी लिखा है कि आप कक्षा से गुण कैसे जोड़ सकते हैं, उदाहरण के लिए आईडी का उपयोग नहीं करना (मुझे यह पसंद नहीं है) और इसके बजाय टोकन का उपयोग करना।

Read the post here...

मूल बातें:

एक आईडी

has_attached_file :avatar, 
  :styles => 
  { 
    :tiny => "48x48>", 
    :preview => "175x175>", 
    :large => "300x300>", 
    :huge => "500x500>" 
  }, 
  :storage => :s3, 
  :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", 
  :path => ":class/:attachment/:id/:style.:extension", 
  :bucket => 'lopsum', 
  :default_url => "/images/photo01.jpg" 

के साथ एक पथ हो और, करने के लिए आप कुछ और करने के लिए इसे बदलना चाहते हैं ...

has_attached_file :avatar, 
  :styles => 
  { 
    :tiny => "48x48>", 
    :preview => "175x175>", 
    :large => "300x300>", 
    :huge => "500x500>" 
  }, 
  :storage => :s3, 
  :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", 
  :path => ":class/:attachment/:token/:style.:extension", 
  :bucket => 'lopsum', 
  :default_url => "/images/photo01.jpg" 

और प्रारंभकर्ता में

Paperclip.interpolates :token do |attachment, style| 
  attachment.instance.token 
end 
संबंधित मुद्दे