2012-01-08 841 views
6

Estoy tratando de entender qué enfoque debo utilizar para forzar las renovaciones de CDN de las fotos de perfil de usuario en un sitio web donde CloudFront es el CDN que sirve las fotos de perfil. y S3 es la tienda de archivos subyacente.Estrategia de invalidación de Amazon CloudFront Cache para garantizar contenido fresco y rentabilidad

Necesito asegurarme de que las fotos de perfil de usuario estén actualizadas tan pronto como un usuario actualice sus fotos de perfil. Veo tres opciones que puedo hacer para actualizar las fotos de perfil y asegurarme de que los usuarios del sitio web obtengan la última imagen tan pronto como se revisen las fotos de perfil. De estos enfoques, ¿es uno mejor que el otro en términos de garantizar contenido fresco y la máxima rentabilidad de largo plazo? ¿Hay mejores enfoques para garantizar el contenido fresco y la máxima rentabilidad a largo plazo?

  1. Emitir una solicitud de objeto S3 put para guardar el archivo con su nombre de archivo original y emitir una solicitud de invalidación de Amazon CloudFront. Amazon CloudFront permite hasta 1000 solicitudes de invalidación gratuitas por mes, lo que parece un poco malo
  2. Emitir una solicitud de objeto S3delete para eliminar las fotos originales, luego una solicitud de objeto S3 put para guardar la nueva foto con una foto nueva y única nombre del archivo. Se trataría de dos solicitudes S3 por actualización de archivo y no requeriría una solicitud de invalidación de CDN de CloudFront. CloudFront luego serviría los últimos archivos tan pronto como se actualizaran, siempre que las URL de imagen se establecieran automáticamente en los nuevos nombres de archivo
  3. Problema uno S3 puso la solicitud de objeto para guardar el archivo con su nombre de archivo original y luego el lado del cliente adjuntar código de versión a las URL CDN (es decir, /img/profilepic.jpg?x=timestamp) o algo por el estilo. No estoy seguro de la eficacia de esta estrategia es en términos de invalidar CloudFront en caché objetos

Gracias

+0

método 3 podría no funcionar, alguien diciendo que Cloudfront eliminará la cadena de consulta param, http://stackoverflow.com/questions/10237838/adding-a-url-parameter-p-234-to-a-file-on- amazon-cloudfront-doesnt-force-ar –

Respuesta

4

CloudFront invalidación puede tomar un tiempo en arrancar y se recomendded como último recurso para eliminar el contenido que debe ser eliminado (como una infracción de derechos de autor).

El mejor enfoque son sus URL con versiones. Para las imágenes de perfil, usaría una ID única (como un GUID). Siempre que un usuario cargue una nueva foto, reemplace esa URL (y elimine la foto anterior si lo desea).

Al actualizar su base de datos con la nueva ID de la foto de perfil de usuario CloudFront extraerá la nueva imagen y el cambio será inmediato.

Cuestiones relacionadas