Cross-Origin Resource Sharing en Amazon S3

amazon s3

Amazon S3 acaba de anunciar el soporte para Cross-Origin Resource Sharing (CORS). ¿Qué significa esto? El CORS es una forma de permitir o bloquear el intercambio de contenido entre dominios. Hasta ahora, no podías comunicarte directamente con los recursos de Amazon S3, teniendo que usar un proxy entre tu dominio y el bucket que tuvieras creado en Amazon S3. Este proxy era necesario porque los navegadores limitan el modo en que las páginas cargadas de un sitio web puedan interactuar con contenido de otro sitio web (un dominio de Amazon S3)

A partir de hoy, sin embargo, Amazon S3 permite esta comunicación directa entre dominios gracias a que empiezan a soportar CORS, reemplazando la necesidad de este servidor proxy, ya que va a comunicar al navegador web que habilite las interacciones entre ciertos dominios que nosotros seleccionemos.

¿Qué podemos hacer ahora con esto? Vamos a poder implementar directamente subidas de ficheros mediante drag&drop de HTML5, mostrar el progreso de la subida o actualizar contenido. Es una buena noticia para los desarrolladores, ya que hasta ahora tenían que crearse su propio proxy, a través del nginx, por ejemplo.

¿Cómo habilitamos esta nueva funcionalidad? Para habilitar el soporte CORS en uno de tus buckets podremos hacerlo desde la consola de gestión de Amazon S3, siguiendo estos pasos:

– Haz click con el botón derecho en tu bucket y abre el panel de “Properties”.
– Debajo de “Permissions”, haz click en el botón “Add CORS configuration” para añadir una nueva configuración CORS (“Add CORS configuration”). Ahora puedes espeficificar los websites que quieres q tengan permisos para acceder a tu bucket directamente y el método request que deseas habilitar (p. ej.: “GET”).
Un ejemplo de configuración, puede ser:

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>http://www.example.com</AllowedOrigin>

   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>

   <AllowedHeader>*</AllowedHeader>
 </CORSRule>
 <CORSRule>
   <AllowedOrigin>*/AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>

– Guardar la configuración

Amazon S3 nos facilita una página de desarrolladores (Amazon S3 Developer Guide) donde tienen toda la información para definir la configuración.

 Como muchas otras veces, Amazon S3 ha pensado en los desarrolladores y ha hecho caso de una petición que se venía realizando desde la comunidad desde hace un tiempo.

Escribe un comentario