Forum: Italian Ruby user group CDN cloudfront - update image

E2143230301529c42a8c8d0288e334d1?d=identicon&s=25 Roberto Sacchetti (roberto_s)
on 2014-01-13 15:34
Giorno a tutti sono nuovo del forum,
ho urgente bisogno di aiuto per una consegna;
Ho la mia app configurata per sfruttare i CDN di amazon (cloudfront);
In un primo momento tt ok, mentre vado ad aggiornare la mia immagine del
profilo scopro un bug, la mia app mi mostra sempre la vecchia immagine
in quanto la cache dei CDN non è aggiornata qualcuno sa come si
aggiorni??
grazie.
6aefcbf4d0ffffd2d7abdf4344cead8f?d=identicon&s=25 Sante Gennaro Rotondi (Guest)
on 2014-01-13 15:38
(Received via mailing list)
Ciao Roberto,

quello che ti serve  invalidare la cache.
Assumo che tu abbia caricato unimmagine con lo stesso nome della
precedente, e quindi ne risulta che lurl della stessa non sia cambiato
(motivo per cui cloudfront ti restituisce una cache).
Cerca cache invalidation su cloudfront, troverai tutto.

ps. controlla anche che non ci sia il browser che sta servendoti una sua
cache locale.

Sante

Il giorno 13/gen/2014, alle ore 15:34, Roberto S.
<sacchetti.roberto@gmail.com> ha scritto:
7f3cc69a9da837a5c69d6b4532645666?d=identicon&s=25 Matteo Giaccone (mat_jack1)
on 2014-01-13 15:39
(Received via mailing list)
Ciao,

se rigeneri gli asset dovrebbe cambiare l'hash del nome del file e
quindi si dovrebbe invalidare la cache su CloudFront. Per rigenerare
un'immagine prova a farci una piccola modifica e rifai il deploy.

Spero possa aiutare :)

Ciao,

Matteo
E2143230301529c42a8c8d0288e334d1?d=identicon&s=25 Roberto Sacchetti (roberto_s)
on 2014-01-13 19:17
quindi se non erro dovrei invalidare i vecchi file??
E2143230301529c42a8c8d0288e334d1?d=identicon&s=25 Roberto Sacchetti (roberto_s)
on 2014-01-13 19:27
i tempi di invalidazione sono istantanei??
6aefcbf4d0ffffd2d7abdf4344cead8f?d=identicon&s=25 Sante Rotondi (Guest)
on 2014-01-13 19:48
(Received via mailing list)
Devi invalidare percorsi tipo /system/images/
Non sono istantanei, per essere sicuri di non avere mai cache l'unica
avere url diverse quando cambia il file

Sent from mobile device.
Il 13/gen/2014 19:27 "Roberto S." <sacchetti.roberto@gmail.com> ha
scritto:
E2143230301529c42a8c8d0288e334d1?d=identicon&s=25 Roberto Sacchetti (roberto_s)
on 2014-01-13 22:22
se vado nella consolle di cloudefront non mi permette di invalidare
directory ma solamente dei path di file....come posso invalidare le
directory??
6aefcbf4d0ffffd2d7abdf4344cead8f?d=identicon&s=25 Sante Gennaro Rotondi (Guest)
on 2014-01-13 22:52
(Received via mailing list)
vai tranquillo che invalida anche le directory

Il giorno 13/gen/2014, alle ore 22:22, Roberto S. <sacchetti.roberto@gmail.com> 
ha scritto:
C26e692d4d3de5881ebb873409085768?d=identicon&s=25 Roberto Sacchetti (ikaiser)
on 2014-01-14 11:42
ho impostato delle invalidazioni tramite consolle :

/user/
user/

e poi le varie immagini con path completo:

/user/5245913c9a7915f953000008/image/image_thumb.jpg
/user/5245913c9a7915f953000008/image/image_small.jpg?1389637447

se vado a vedere il risultato se invalido le singole immagini lui mi
ricacha, se invece passo la directory lui mi mantiene la cache ...


mi sto accorgendo che cmq rails mi accoda '?1389637447' all path
immagine in teoria cloudfront non dovrebbe ricachare in automatico e
all'istante??
C26e692d4d3de5881ebb873409085768?d=identicon&s=25 Roberto Sacchetti (ikaiser)
on 2014-01-14 14:50
sto scrivendo da un altra utenza perché non mi permetteva più l'accesso
tramite google, mi restituiva un errore.
C26e692d4d3de5881ebb873409085768?d=identicon&s=25 Roberto Sacchetti (ikaiser)
on 2014-01-14 17:05
[soluzione] - ho risolto andando ad accodare il timestamp al nome
dell'oggetto -

has_mongoid_attached_file :image,
                            :url =>
'/user/:id/image/image_:timestamp_:style.:extension',
                            :path => ':rails_root/public:url',
                            :default_url =>
'/images/profile_:style.jpg',
                            :styles => {
                                :original => ['1920x1680>', :jpg],
                                :small    => ['100x100>',   :jpg],
                                :medium   => ['250x250',    :jpg],
                                :large    => ['500x500>',   :jpg],
                                :thumb    => ['64x64#',   :jpg],
                                :mini     => ['35x35#',   :jpg],
                                :mobile   => ['60x60#', :jpg],
                                :mobile_retina   => ['120x120#', :jpg]
                            }

in modo che costringo cloudfront a ricachare la img.
6aefcbf4d0ffffd2d7abdf4344cead8f?d=identicon&s=25 Sante Gennaro Rotondi (Guest)
on 2014-01-14 22:56
(Received via mailing list)
Strano, io uso spesso linvalidazione di un percorso con sottocartelle
senza problemi!

Luso del timestamp cos per evitare cache hit non funziona sempre, per
questo la cosa pi semplice rimane il cambio del nome.
Cloudfront prende i file dalla tua app facendo da proxy-cache oppure da
un bucket S3? Nel primo caso, hai controllato la durata della cache
negli header http?

Il giorno 14/gen/2014, alle ore 11:42, Roberto Sacchetti
<info@robertosacchetti.com> ha scritto:
C26e692d4d3de5881ebb873409085768?d=identicon&s=25 Roberto Sacchetti (ikaiser)
on 2014-01-15 10:35
Luso del timestamp cos per evitare cache hit non funziona sempre, per
questo la cosa pi semplice rimane il cambio del nome.

 - infatti inserendo :timestamp lui mi cambia il nome e path al file ed
è sempre nuovo per cloudfront il quale forza a ricachare l'immagine, la
sto testando oramai da ieri e sembra funzionare.

Cloudfront prende i file dalla tua app facendo da proxy-cache oppure da
un bucket S3?

 - dalla mia app

Nel primo caso, hai controllato la durata della cache
negli header http?

 - ho impostato ttl a 1 come da guida di cloudfront

al momento con la soluzione espressa sopra, sembra funzionare il tutto,
e anche molto bene le immagini dinamiche vengono cachate all'istante.
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.