CDN cloudfront - update image

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.

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.
[email protected] ha scritto:

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 :slight_smile:

Ciao,

Matteo

quindi se non erro dovrei invalidare i vecchi file??

i tempi di invalidazione sono istantanei??

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.” [email protected] ha
scritto:

se vado nella consolle di cloudefront non mi permette di invalidare
directory ma solamente dei path di file…come posso invalidare le
directory??

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??

sto scrivendo da un altra utenza perché non mi permetteva più l’accesso
tramite google, mi restituiva un errore.

[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.

vai tranquillo che invalida anche le directory

Il giorno 13/gen/2014, alle ore 22:22, Roberto S. [email protected] ha scritto:

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 S.
[email protected] ha scritto:

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.