2012-10-21 10 views
6

W moim modelu, który używa spinacza. Dodałem this linii kodu, ale jeszcze jej nie działaJak dodać nagłówki Expires do zdjęć amazon s3?

has_attached_file :attachment, { 
    :styles => { 
     :medium => ["654x5000000>", :jpg], 
     :small => ["260x50000000>", :jpg], 
     :thumb => ["75x75#", :jpg], 
     :facebook_meta_tag =>["200x200#", :jpg] 
    }, 
    :convert_options => { 
     :medium => "-quality 80 -interlace Plane", 
     :small => "-quality 80 -interlace Plane", 
     :thumb => "-quality 80 -interlace Plane", 
     :facebook_meta_tag => "-quality 80 -interlace Plane" 
     }, 
     :s3_headers => { 'Cache-Control' => 'max-age=315576000', 'Expires' => 10.years.from_now.httpdate } 
    }.merge(PAPERCLIP_STORAGE_OPTIONS) 

PS: ja testowałem to na GTmetrix.com i jak na ich statystyki, nagłówki wygaśnięcia nie istnieją w Amazon obrazów.

+0

Czy ponownie przesłać wszystkie poprzednie załączniki po dokonaniu zmiana? – James

+0

@James Czy muszę? Nie wiedziałem o tym. Daj mi znać, jeśli będę musiał ponownie przetworzyć wszystkie obrazy. –

+0

Za każdym razem, gdy zmieniasz ustawienia spinacza, musisz ponownie przetworzyć wszystkie poprzednie załączniki, jeśli chcesz, aby pasowały do ​​zaktualizowanych ustawień. – James

Odpowiedz

5

Aby rozwinąć na odpowiedź Jamesa dla innych pewien jak przerabiają swoje stare załączników, istnieją dwa sposoby, aby to zrobić:

1) ponownie przetworzyć wszystkie załączniki poprzez prowizji (ewentualnie w grupie)

rake paperclip:refresh CLASS=User 

2) powtórnie przetworzyć konkretnych załączników (np poprzez migracje)

User.where("attachment IS NOT NULL").find_each do |user| 
    user.attachment.reprocess! 
end 

Aby uzyskać więcej informacji, zobacz https://github.com/thoughtbot/paperclip/wiki/Thumbnail-Generation#generatingregenerating-your-thumbnails

3

Wygląda na to, że nie przetworzyłeś/nie przesyłasz starych załączników i dlatego ich nagłówki się nie zmieniły.

0

Na wypadek, gdyby ktoś potrzebował, aby uzyskać adres URL przywiązania z dynamicznym upływającym cel ten pracował dla mnie: attachment.expiring_url (60 * 60) z dokumentacją spinacz link