POST Object
Descripción
La operación POST agrega un objeto a un bucket específico mediante formularios HTML. POST es una forma alternativa de PUT que permite las cargas desde el navegador como una forma de colocar objetos en buckets. Los parámetros que se transfieren a PUT a través de encabezados HTTP se transfieren, en su lugar, como campos de formulario a POST en el cuerpo del mensaje codificado en varias partes o con datos del formulario. Para agregar un objeto a un bucket, debe tener el acceso WRITE en el bucket. Amazon S3 nunca almacena objetos parciales. Si recibe una respuesta correcta, puede estar seguro de que se ha almacenado todo el objeto.
Amazon S3 es un sistema distribuido. A menos que habilite el control de versiones para un bucket, si Amazon S3 recibe varias solicitudes de escritura para el mismo objeto simultáneamente, solo se almacena la última versión del objeto escrito.
Para asegurarse de que los datos no se corrompan al atravesar la red, utilice el campo de formulario Content-MD5. Cuando utiliza este campo de formulario, Amazon S3 compara el objeto con el valor MD5 proporcionado. Si no coinciden, Amazon S3 devuelve un error. Además, puede calcular el valor MD5 al publicar un objeto en Amazon S3 y comparar el valor ETag devuelto con el valor MD5 calculado. La ETag solo refleja solo los cambios en el contenido de un objeto, no en los metadatos.
nota
Para configurar la aplicación para que envíe los encabezados de las solicitudes antes de enviar el cuerpo de la solicitud, utilice el código de estado HTTP 100 (Continuar). Para las operaciones POST, el uso de este código de estado ayuda a evitar enviar el cuerpo del mensaje si el mensaje se rechaza en función de los encabezados (por ejemplo, debido a un error de autenticación o a una redirección). Para obtener más información sobre el código de estado HTTP 100 (Continuar), consulte la sección 8.2.3 de http://www.ietf.org/rfc/rfc2616.txt
Amazon S3 cifra automáticamente todos los objetos nuevos que se cargan a un bucket de S3. La configuración de cifrado de un objeto cargado depende de la configuración de cifrado predeterminada del bucket de destino. De forma predeterminada, todos los buckets tienen una configuración de cifrado predeterminada que utiliza el cifrado del servidor con claves administradas de Amazon S3 (SSE-S3).
Si el bucket de destino tiene una configuración de cifrado que utiliza el cifrado del servidor con una clave de AWS Key Management Service (AWS KMS) (SSE-KMS), cifrado del servidor de doble capa con una clave de AWS KMS (DSSE-KMS) o una clave de cifrado proporcionada por el cliente (SSE-C), Amazon S3 utiliza la clave de KMS correspondiente o una clave proporcionada por el cliente para cifrar el objeto cargado. Al cargar un objeto, si desea cambiar la configuración de cifrado del objeto cargado, puede especificar el tipo de cifrado del servidor. Puede configurar SSE-S3, SSE-KMS, DSSE-KMS o SSE-C. Para obtener más información, consulte Protección de datos mediante el cifrado del servidor en la Guía del usuario de Amazon Simple Storage Service.
importante
Al crear la solicitud, asegúrese de que el campo file sea el último campo del formulario.
Solicitudes
Sintaxis
POST / HTTP/1.1 Host:destinationBucket.s3.amazonaws.com User-Agent:browser_dataAccept:file_typesAccept-Language:RegionsAccept-Encoding:encodingAccept-Charset:character_setKeep-Alive: 300 Connection: keep-alive Content-Type: multipart/form-data; boundary=9431149156168 Content-Length:length--9431149156168 Content-Disposition: form-data; name="key"acl--9431149156168 Content-Disposition: form-data; name="tagging" <Tagging><TagSet><Tag><Key>Tag Name</Key><Value>Tag Value</Value></Tag></TagSet></Tagging> --9431149156168 Content-Disposition: form-data; name="success_action_redirect"success_redirect--9431149156168 Content-Disposition: form-data; name="Content-Type"content_type--9431149156168 Content-Disposition: form-data; name="x-amz-meta-uuid"uuid--9431149156168 Content-Disposition: form-data; name="x-amz-meta-tag"metadata--9431149156168 Content-Disposition: form-data; name="AWSAccessKeyId"access-key-id--9431149156168 Content-Disposition: form-data; name="Policy"encoded_policy--9431149156168 Content-Disposition: form-data; name="Signature"signature= --9431149156168 Content-Disposition: form-data; name="file"; filename="MyFilename.jpg" Content-Type: image/jpegfile_content--9431149156168 Content-Disposition: form-data; name="submit" Upload to Amazon S3 --9431149156168--
Parámetros de la solicitud
Esta aplicación de la operación no utiliza parámetros de solicitud.
Campos de formulario
Esta operación puede utilizar los siguientes campos de formulario.
| Nombre | Descripción | Obligatorio |
|---|---|---|
AWSAccessKeyId |
El ID de clave de acceso de AWS del propietario del bucket que otorga un acceso de usuario anónimo para una solicitud que cumple con el conjunto de restricciones en la política. Tipo: cadena Valor predeterminado: None Restricciones: obligatorio si se incluye un documento de política con la solicitud. |
Condicional |
acl |
La lista de control de acceso (ACL) de Amazon S3 especificada. Si la ACL especificada no es válida, se genera un error. Para obtener más información sobre ACL, consulte Información general de la lista de control de acceso (ACL) en la Guía del usuario de Amazon Simple Storage Service. Tipo: cadena Valor predeterminado: privado Valores válidos: |
No |
Cache-Control, Content-Type,
Content-Disposition, Content-Encoding,
Expires |
Los encabezados específicos de REST. Para obtener más información, consulte PutObject. Tipo: cadena Valor predeterminado: None |
No |
file |
El contenido de texto o archivo. El contenido de texto o archivo debe ser el último campo en el formulario. No puede cargar más de un archivo a la vez. Tipo: el contenido de texto o archivo Valor predeterminado: none |
Sí |
key |
El nombre de la clave cargada. Para utilizar el nombre de archivo provisto por el usuario, utilice la variable Para obtener más información, consulte Clave de objeto y metadatos en la Guía del usuario de Amazon Simple Storage Service. Tipo: cadena Valor predeterminado: None |
Sí |
policy |
La política de seguridad que describe lo que se permite en la solicitud. Las solicitudes sin una política de seguridad se consideran anónimas y funcionan solo en buckets que se pueden escribir públicamente. Para obtener más información, consulte Formularios HTML y Ejemplos de carga en la Guía del usuario de Amazon Simple Storage Service. Tipo: cadena Valor predeterminado: None Restricciones: se requiere una política de seguridad si el bucket no se puede escribir públicamente. |
Condicional |
success_action_redirect, redirect |
La URL a la que se redirige al cliente después de una carga exitosa. Si no se especifica el campo Si Amazon S3 no puede interpretar la URL, actúa como si el campo no estuviera presente. Si la carga falla, Amazon S3 muestra un error y no redirige al usuario a una URL. Tipo: cadena Valor predeterminado: None notaEl nombre de campo de |
No |
success_action_status |
Si no especifica Este campo acepta los valores Si el valor se establece en Si el valor se establece en Si el valor no se establece o si se establece en un valor no válido, Amazon S3 devuelve un documento vacío con un código de estado 204. Tipo: cadena Valor predeterminado: None |
No |
tagging |
El conjunto de etiquetas especificado que se agregará al objeto. Para agregar etiquetas, utilice el siguiente esquema de codificación.
Para obtener más información, consulte Etiquetado de objetos en la Guía del usuario de Amazon Simple Storage Service. Tipo: cadena Valor predeterminado: None |
No |
x-amz-storage-class |
La clase de almacenamiento que se usa para almacenar el objeto. Si no especifica una clase, Amazon S3 utiliza la clase de almacenamiento predeterminada, Tipo: cadena Valor predeterminado: Valores válidos: |
No |
x-amz-meta-* |
Los encabezados que comienzan con este prefijo son metadatos definidos por el usuario. Cada uno de ellos se almacena y se devuelve como un conjunto de pares clave-valor. Amazon S3 no valida ni interpreta metadatos definidos por el usuario. Para obtener más información, consulte PutObject. Tipo: cadena Valor predeterminado: None |
No |
x-amz-security-token |
El token de seguridad de Amazon DevPay. Cada solicitud que utiliza Amazon DevPay requiere dos campos de formulario Tipo: cadena Valor predeterminado: None |
No |
x-amz-signature |
(AWS Signature Version 4) El hash HMAC-SHA256 de la política de seguridad. Tipo: cadena Valor predeterminado: None |
Condicional |
x-amz-website-redirect-location
|
Si el bucket está configurado como un sitio web, este campo redirige las solicitudes para este objeto a otro objeto en el mismo bucket o a una URL externa. Amazon S3 almacena el valor de este encabezado en los metadatos del objeto. Para obtener más información sobre los metadatos del objeto, consulte Clave de objeto y metadatos en la Guía del usuario de Amazon Simple Storage Service. En el siguiente ejemplo, el encabezado de la solicitud establece la redirección a un objeto (
En el siguiente ejemplo, el encabezado de la solicitud establece la redirección del objeto a otro sitio web:
Para obtener más información sobre el alojamiento de sitios web en Amazon S3, consulte Alojamiento de sitios web en Amazon S3 y Cómo configurar las redirecciones de página de sitio web en la Guía del usuario de Amazon Simple Storage Service. Tipo: cadena Valor predeterminado: None Restricciones: el valor debe ir precedido de |
No |
Campos del formulario de solicitud de suma de comprobación adicionales
Al cargar un objeto, puede especificar varias sumas de comprobación que desee usar para verificar la integridad de los datos. Puede especificar un algoritmo de suma de comprobación adicional para que lo use Amazon S3. Para obtener más información sobre los valores de suma de comprobación adicionales, consulte Comprobación de la integridad de los objetos en la Guía del usuario de Amazon Simple Storage Service.
| Nombre | Descripción | Obligatorio |
|---|---|---|
x-amz-checksum-algorithm
|
Indica el algoritmo utilizado para crear la suma de comprobación del objeto. Si se especifica un valor, debe incluir el encabezado de la suma de comprobación correspondiente. De lo contrario, la solicitud generará un error 400. Entre los valores posibles se incluyen: |
No |
x-amz-checksum-crc32
|
Especifica la suma de comprobación CRC32 de 32 bits codificada en base64 del objeto. Este parámetro es obligatorio si el valor de |
Condicional |
x-amz-checksum-crc32c
|
Especifica la suma de comprobación CRC32C de 32 bits codificada en base64 del objeto. Este parámetro es obligatorio si el valor de |
Condicional |
x-amz-checksum-sha1
|
Especifica el resumen SHA-1 de 160 bits codificado en base64 del objeto. Este parámetro es obligatorio si el valor de |
Condicional |
x-amz-checksum-sha256
|
Especifica el resumen SHA-256 de 256 bits codificado en base64 del objeto. Este parámetro es obligatorio si el valor de |
Condicional |
Campos del formulario de solicitud específicos del cifrado del servidor
El cifrado del servidor es cifrado de datos en reposo. Amazon S3 cifra los datos mientras los escribe en los discos en los centros de datos de AWS y los descifra cuando accede a ellos. Al cargar un objeto, puede especificar el tipo de cifrado del servidor que desea que Amazon S3 use para cifrar el objeto.
Hay cuatro tipos de cifrado del servidor:
-
Cifrado del servidor con claves administradas por Amazon S3 (SSE-S3): desde mayo de 2022, todos los buckets de Amazon S3 tienen el cifrado configurado de forma predeterminada. La opción predeterminada para el cifrado del servidor es con SSE-S3. Cada objeto se cifra con una clave única. Como medida de seguridad adicional, SSE-S3 cifra la propia clave con una clave raíz que cambia periódicamente. SSE-S3 utiliza uno de los cifrados de bloques más seguros disponibles, Advanced Encryption Standard de 256 bits (AES-256), para cifrar sus datos.
-
Cifrado del servidor con claves de AWS KMS (SSE-KMS): SSE-KMS se proporciona a través de una integración del servicio de AWS KMS con Amazon S3. Con AWS KMS, tiene más control sobre sus claves. Por ejemplo, puede ver claves distintas, editar las políticas de control y seguir las claves en AWS CloudTrail. Además, puede crear y gestionar claves administradas por el cliente o utilizar Claves administradas por AWS que sean únicas para usted, su servicio y su región.
-
Cifrado del servidor de doble capa con claves de AWS KMS (DSSE-KMS): el cifrado del servidor de doble capa con AWS KMS keys (DSSE-KMS) es similar a SSE-KMS, pero aplica dos capas individuales de cifrado por objeto en lugar de una.
-
Cifrado del servidor con claves proporcionadas por el cliente (SSE-C): con SSE-C, usted administra las claves de cifrado y Amazon S3 administra el cifrado, al escribir en los discos, y el descifrado, cuando accede a los objetos.
nota
Si tiene bloqueado el cifrado del servidor con claves proporcionadas por el cliente (SSE-C) para el bucket de uso general, recibirá un error HTTP 403 Acceso denegado cuando especifique los encabezados de solicitud de SSE-C al escribir nuevos datos en el bucket. Para obtener más información, consulte Bloqueo o desbloqueo de SSE-C para un bucket de uso general.
Para obtener más información, consulte Protección de los datos con el cifrado del servidor en la Guía del usuario de Amazon Simple Storage Service.
En función del tipo de cifrado del servidor que desee usar, especifique los siguientes campos del formulario.
-
Use SSE-S3, SSE-KMS o DSSE-KMS: si desea usar estos tipos de cifrado del servidor, especifique los siguientes campos del formulario en la solicitud.
Nombre Descripción Obligatorio x-amz-server-side-encryptionEspecifica el algoritmo de cifrado del servidor que se usará cuando Amazon S3 cree un objeto. Para usar SSE-S3, especifique
AES256. Para usar SSE-KMS, especifiqueaws:kms. Para usar DSSE-KMS, especifiqueaws:kms:dsse.Tipo: cadena
Valor válido:
aws:kms,AES256,aws:kms:dsseSí x-amz-server-side-encryption-aws-kms-key-idSi el encabezado
x-amz-server-side-encryptiontiene un valor válido deaws:kmsoaws:kms:dsse, este encabezado especifica el ID de AWS KMS key que se utilizó para cifrar el objeto.Tipo: cadena
Sí, si el valor de x-amz-server-side-encryptionesaws:kmsoaws:kms:dssex-amz-server-side-encryption-contextSi
x-amz-server-side-encryptiontiene un valor válido deaws:kmsoaws:kms:dsse, este encabezado especifica el contexto de cifrado del objeto. El valor de este encabezado es una cadena UTF-8 codificada en base64 que contiene pares clave-valor con formato JSON para el contexto de cifrado.Tipo: cadena
No x-amz-server-side-encryption-bucket-key-enabledSi
x-amz-server-side-encryptiontiene un valor válido deaws:kmsoaws:kms:dsse, este encabezado especifica si Amazon S3 debe usar una clave de bucket de S3 con SSE-KMS o DSSE-KMS. Si se establece este encabezado entrue, Amazon S3 utilizará una clave de bucket de S3 para el cifrado de objetos con SSE-KMS o DSSE-KMS.Tipo: booleano
No nota
Si especifica
x-amz-server-side-encryption:aws:kmsox-amz-server-side-encryption:aws:kms:dsse, pero no proporcionax-amz-server-side-encryption-aws-kms-key-id, Amazon S3 utiliza la Clave administrada de AWS (aws/S3) para proteger los datos. -
Utilice SSE-C: si desea administrar sus propias claves de cifrado, debe proporcionar todos los campos del formulario siguientes en la solicitud.
nota
Si usa SSE-C, el valor de
ETagque Amazon S3 devuelve en la respuesta no es el MD5 del objeto.Nombre Descripción Obligatorio x-amz-server-side-encryption-customer-algorithmEspecifica el algoritmo que se utilizará al cifrar el objeto.
Tipo: cadena
Valor predeterminado: None
Valor válido:
AES256Restricciones: debe ir acompañado de campos
x-amz-server-side-encryption-customer-keyyx-amz-server-side-encryption-customer-key-MD5válidos.Sí x-amz-server-side-encryption-customer-keyEspecifica la clave de cifrado proporcionada por el cliente con codificación en base64 para Amazon S3 para usar en el cifrado de datos. Este valor se utiliza para almacenar el objeto y, a continuación, se descarta. Amazon no almacena la clave de cifrado. La clave debe ser adecuada para su uso con el algoritmo especificado en el encabezado
x-amz-server-side-encryption-customer-algorithm.Tipo: cadena
Valor predeterminado: None
Restricciones: debe ir acompañado de campos
x-amz-server-side-encryption-customer-algorithmyx-amz-server-side-encryption-customer-key-MD5válidos.Sí x-amz-server-side-encryption-customer-key-MD5Especifica el resumen MD5 de 128 bits con codificación en base64 de la clave de cifrado, según RFC 1321
. Amazon S3 usa este encabezado para comprobar la integridad del mensaje y garantizar que la clave de cifrado se haya transmitido sin errores. Tipo: cadena
Valor predeterminado: None
Restricciones: debe ir acompañado de campos
x-amz-server-side-encryption-customer-algorithmyx-amz-server-side-encryption-customer-keyválidos.Sí
Respuestas
Encabezados de respuesta
Esta implementación de la operación puede incluir los encabezados de respuesta siguientes además de los encabezados de respuesta comunes a todas las respuestas. Para obtener más información, consulte Encabezados de respuesta comunes.
| Nombre | Descripción |
|---|---|
x-amz-checksum-crc32
|
La suma de comprobación CRC32 de 32 bits codificada en base64 del objeto. Tipo: cadena |
x-amz-checksum-crc32c
|
La suma de comprobación CRC32C de 32 bits codificada en base64 del objeto. Tipo: cadena |
x-amz-checksum-sha1
|
El resumen SHA-1 de 160 bits codificado en base64 del objeto. Tipo: cadena |
x-amz-checksum-sha256
|
El resumen SHA-256 de 256 bits codificado en base64 del objeto. Tipo: cadena |
x-amz-expiration
|
Si se configura una acción Tipo: cadena |
success_action_redirect, redirect
|
La URL a la que se redirige al cliente en una carga exitosa. Tipo: cadena Antecesor: PostResponse |
x-amz-server-side-encryption
|
Algoritmo de cifrado del servidor que se utilizaba al almacenar este objeto en Amazon S3 (por ejemplo, Tipo: cadena |
x-amz-server-side-encryption-aws-kms-key-id
|
Si el encabezado Tipo: cadena |
x-amz-server-side-encryption-bucket-key-enabled
|
Si Tipo: booleano |
x-amz-server-side-encryption-customer-algorithm
|
Si se solicitó SSE-C, la respuesta incluye este encabezado, que confirma el algoritmo de cifrado que se utilizó. Tipo: cadena Valores válidos: |
x-amz-server-side-encryption-customer-key-MD5
|
Si se solicitó el SSE-C, la respuesta incluye este encabezado para verificar la integridad del mensaje de ida y vuelta de la clave de cifrado proporcionada por el cliente. Tipo: cadena |
x-amz-version-id |
Versión del objeto. Tipo: cadena |
Elementos de respuesta
| Nombre | Descripción |
|---|---|
Bucket
|
El nombre del bucket en el que se almacenaba el objeto. Tipo: cadena Antecesor: PostResponse |
ETag
|
La etiqueta de entidad (ETag) es un hash MD5 del objeto que se puede utilizar para realizar operaciones Tipo: cadena Antecesor: PostResponse |
Key
|
El nombre de la clave del objeto. Tipo: cadena Antecesor: PostResponse |
Location
|
El URI del objeto. Tipo: cadena Antecesor: PostResponse |
Errores especiales
Esta implementación de la operación no devuelve errores especiales. Para obtener información sobre los errores de Amazon S3 y una lista de códigos de error, consulte Respuestas de error.
Ejemplos
Solicitud de ejemplo
POST /Neo HTTP/1.1 Content-Length: 4 Host: quotes.s3.amazonaws.com Date: Wed, 01 Mar 2006 12:00:00 GMT Authorization:authorization stringContent-Type: text/plain Expect: the 100-continue HTTP status codeObjectContent
Respuesta de ejemplo con el control de versiones suspendido
A continuación, se muestra una respuesta de ejemplo cuando el control de versiones del bucket está suspendido:
HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-amz-request-id: 0A49CE4060975EAC x-amz-version-id: default Date: Wed, 12 Oct 2009 17:50:00 GMT ETag: "1b2cf535f27731c974343645a3985328" Content-Length: 0 Connection: close Server: AmazonS3
En esta respuesta, el ID de la versión es null.
Respuesta de ejemplo con el control de versiones habilitado
A continuación, se muestra una respuesta de ejemplo cuando el control de versiones del bucket está habilitado.
HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-amz-request-id: 0A49CE4060975EAC x-amz-version-id: 43jfkodU8493jnFJD9fjj3HHNVfdsQUIFDNsidf038jfdsjGFDSIRp Date: Wed, 01 Mar 2006 12:00:00 GMT ETag: "828ef3fdfa96f00ad9f27c383fc9ac7f" Content-Length: 0 Connection: close Server: AmazonS3