View a markdown version of this page

POST Object - Amazon Simple Storage Service

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_data Accept: file_types Accept-Language: Regions Accept-Encoding: encoding Accept-Charset: character_set Keep-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/jpeg file_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: private | public-read | public-read-write | aws-exec-read | authenticated-read | bucket-owner-read | bucket-owner-full-control

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

key

El nombre de la clave cargada.

Para utilizar el nombre de archivo provisto por el usuario, utilice la variable ${filename}. Por ejemplo, si una usuaria llamada Mary carga el archivo example.jpg y se especifica /user/mary/${filename}, el nombre de la clave es /user/mary/example.jpg.

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

policy

La política de seguridad que describe lo q‎ue 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 success_action_redirect, Amazon S3 devuelve el tipo de documento vacío especificado en el campo success_action_status.

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

nota

El nombre de campo de redirect está obsoleto y el soporte para el nombre de campo de redirect se eliminará en el futuro.

No

success_action_status

Si no especifica success_action_redirect, el código de estado se devuelve al cliente cuando la carga se realiza correctamente.

Este campo acepta los valores 200, 201 o 204 (el valor predeterminado).

Si el valor se establece en 200 o 204, Amazon S3 devuelve un documento vacío con un código de estado 200 o 204.

Si el valor se establece en 201, Amazon S3 devuelve un documento XML con un código de estado 201.

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.

<Tagging> <TagSet> <Tag> <Key>TagName</Key> <Value>TagValue</Value> </Tag> ... </TagSet> </Tagging>

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, STANDARD. Amazon S3 admite otras clases de almacenamiento. Para obtener más información, consulte Clases de almacenamiento en la Guía del usuario de Amazon Simple Storage Service.

Tipo: cadena

Valor predeterminado: STANDARD

Valores válidos: REDUCED_REDUNDANCY |EXPRESS_ONEZONE | DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | STANDARD | STANDARD_IA

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 x-amz-security-token: uno para el token de producto y otro para el token de usuario.

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 (anotherPage.html) del mismo bucket:

x-amz-website-redirect-location: /anotherPage.html

En el siguiente ejemplo, el encabezado de la solicitud establece la redirección del objeto a otro sitio web:

x-amz-website-redirect-location: http://www.example.com/

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 /, http:// o https://. La longitud del valor está limitada a 2 KB.

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: CRC32, CRC32C, SHA1 y SHA256.

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 x-amz-checksum-algorithm es CRC32.

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 x-amz-checksum-algorithm es CRC32C.

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 x-amz-checksum-algorithm es SHA1.

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 x-amz-checksum-algorithm es SHA256.

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

    Especifica 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, especifique aws:kms. Para usar DSSE-KMS, especifique aws:kms:dsse.

    Tipo: cadena

    Valor válido: aws:kms, AES256, aws:kms:dsse

    x-amz-server-side-encryption-aws-kms-key-id

    Si el encabezado x-amz-server-side-encryption tiene un valor válido de aws:kms o aws: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-encryption es aws:kms o aws:kms:dsse
    x-amz-server-side-encryption-context

    Si x-amz-server-side-encryption tiene un valor válido de aws:kms o aws: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-enabled

    Si x-amz-server-side-encryption tiene un valor válido de aws:kms o aws: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 en true, 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:kms o x-amz-server-side-encryption:aws:kms:dsse, pero no proporciona x-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 ETag que Amazon S3 devuelve en la respuesta no es el MD5 del objeto.

    Nombre Descripción Obligatorio
    x-amz-server-side-encryption-customer-algorithm

    Especifica el algoritmo que se utilizará al cifrar el objeto.

    Tipo: cadena

    Valor predeterminado: None

    Valor válido: AES256

    Restricciones: debe ir acompañado de campos x-amz-server-side-encryption-customer-key y x-amz-server-side-encryption-customer-key-MD5 válidos.

    x-amz-server-side-encryption-customer-key

    Especifica 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-algorithm y x-amz-server-side-encryption-customer-key-MD5 válidos.

    x-amz-server-side-encryption-customer-key-MD5

    Especifica 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-algorithm y x-amz-server-side-encryption-customer-key válidos.

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 Expiration para el objeto como parte de la configuración del ciclo de vida del bucket, Amazon S3 devuelve este encabezado.  El valor del encabezado incluye un componente expiry-date y un componente rule-id codificado en URL.  En el caso de los buckets con versiones habilitadas, este encabezado solo se aplica a las versiones actuales. Amazon S3 no proporciona un encabezado que indique cuándo una versión no actual es apta para su eliminación permanente. Para obtener más información, consulte PutBucketLifecycleConfiguration.

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, AES256, aws:kms, aws:kms:dsse).

Tipo: cadena

x-amz-server-side-encryption-aws-kms-key-id

Si el encabezado x-amz-server-side-encryption tiene un valor válido de aws:kms, este encabezado especifica el ID de la clave de KMS que se utilizó para cifrar el objeto.

Tipo: cadena

x-amz-server-side-encryption-bucket-key-enabled

Si x-amz-server-side-encryption tiene un valor válido de aws:kms, este encabezado indica si el objeto está cifrado con SSE-KMS mediante una clave de bucket de S3. Si este encabezado se establece en true, el objeto usa una clave de bucket de S3 con SSE-KMS.

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

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 GET condicionales mediante el uso de la etiqueta de solicitud If-Modified con la operación de solicitud GET. ETag refleja solo los cambios en el contenido de un objeto, no en sus metadatos.

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 string Content-Type: text/plain Expect: the 100-continue HTTP status code ObjectContent

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