Cargas basadas en el navegador con POST (AWS Signature Version 4)
En esta sección se explica cómo cargar archivos directamente en Amazon S3 a través de un navegador mediante solicitudes HTTP POST. También contiene información sobre cómo utilizar la biblioteca AWS Amplify JavaScript para cargar archivos basados en el navegador en Amazon S3.
Temas
Cargas basadas en el navegador con HTTP POST
Amazon S3 admite las solicitudes HTTP POST para que los usuarios puedan cargar contenido directamente en Amazon S3. Al usar POST, los usuarios finales pueden autenticar las solicitudes sin tener que pasar los datos a través de un nodo intermediario seguro que proteja las credenciales. Por lo tanto, HTTP POST tiene el potencial de reducir la latencia.
En la siguiente figura, se muestra una carga de Amazon S3 con una solicitud POST.
-
El usuario accede a la página desde un navegador web.
-
La página web incluye un formulario HTML que contiene toda la información necesaria para que el usuario cargue contenido en Amazon S3.
-
El usuario carga contenido en Amazon S3 mediante el navegador web.
El proceso para enviar solicitudes POST basadas en el navegador es el siguiente:
-
Cree una política de seguridad que especifique las condiciones que restrinjan lo que desea permitir en la solicitud, como el nombre del bucket en el que se pueden cargar los objetos y los prefijos de los nombres de clave que desee permitir para el objeto que se va a crear.
-
Cree una firma basada en la política. Para las solicitudes autenticadas, el formulario debe incluir una firma válida y la política.
-
Cree un formulario HTML al que puedan acceder los usuarios para cargar objetos en el bucket de Amazon S3.
En la siguiente sección, se describe cómo crear una firma para autenticar una solicitud. Para obtener información acerca de la creación de formularios y políticas de IAM, consulte Creación de un formulario HTML (mediante AWS Signature Version 4).
Cálculo de una firma
Para las solicitudes autenticadas, el formulario HTML debe incluir campos para un política y una firma de seguridad.
-
Una política de seguridad (consulte Política POST) controla lo que se permite en la solicitud.
-
La política de seguridad es
StringToSign(consulte Introducción a la firma de solicitudes) en el cálculo de la firma.
Cálculo de una firma
-
Cree una política con la codificación UTF-8.
-
Convierta los bytes de la política codificados en UTF-8 a base64. El resultado es
StringToSign. -
Cree una clave de firma.
-
Utilice la clave de firma para firmar
StringToSignmediante el algoritmo de firma HMAC-SHA256.
Para obtener más información acerca de la creación de formularios HTML, políticas de seguridad y un ejemplo, consulte lo siguiente: