PutObject

Documentación: PutObject

Descripción

La operación PutObject crea un nuevo objeto o reemplaza un objeto existente dentro de un bucket.

Solicitud

Método: PUT

URI:

  • Estilo virtual-host: https://{bucket-name}.s3.latam-scl-x.datageneral.cl/{object-key}

  • Estilo path: https://s3.latam-scl-x.datageneral.cl/{bucket-name}/{object-key}

Encabezados:

  • Host: Requerido. Especifica el nombre del bucket (para virtual-host) o el host del servicio (para path-style).

  • Date: Requerido. Fecha y hora de la solicitud.

  • Content-Length: Requerido. La longitud del cuerpo de la solicitud (el objeto que se va a cargar).

  • Content-Type: Requerido. El tipo de contenido del objeto (ej., text/plain, image/jpeg).

  • Authorization: Requerido. Contiene la firma de la solicitud para la autenticación.

  • x-amz-acl: Opcional. Define el Access Control List (ACL) para el objeto. Algunos valores comunes son:

    • private: El propietario del bucket tiene acceso completo. Todos los demás no tienen acceso.

    • public-read: El propietario tiene acceso completo. Todos los demás pueden leer.

    • public-read-write: El propietario tiene acceso completo. Todos los demás pueden leer y escribir.

  • x-amz-storage-class: Opcional. La clase de almacenamiento para el objeto. Los valores válidos son:

    • STANDARD (predeterminado)

    • REDUCED_REDUNDANCY

    • Otros valores pueden ser soportados dependiendo de la implementación de S3.

  • x-amz-meta-*: Opcional. Metadatos definidos por el usuario. El prefijo x-amz-meta- es obligatorio.

  • x-amz-server-side-encryption: Opcional. Tipo de encriptación a usar.

  • x-amz-website-redirect-location: Opcional. Si el objeto es un redirect, contiene la URL.

  • Otros encabezados opcionales: Dependiendo de las funcionalidades que se quieran agregar.

Cuerpo de la solicitud:

  • Requerido. Contiene los datos del objeto que se van a almacenar.

Respuesta

Códigos de estado:

  • 200 OK: La carga del objeto se realizó correctamente.

  • 201 Created: La carga del objeto se realizó correctamente.

  • 400 Bad Request: La solicitud no se pudo procesar debido a un error del cliente.

  • 403 Forbidden: El cliente no tiene permiso para cargar el objeto.

  • 404 Not Found: El bucket no existe.

  • 411 Length Required: El encabezado Content-Length es requerido.

  • Otros códigos de error: Pueden aplicar códigos de error específicos del servicio S3.

Encabezados de la respuesta:

  • Date: Fecha y hora de la respuesta.

  • ETag: El ETag del objeto recién cargado.

  • x-amz-version-id: La versión del objeto (si está habilitado el versionamiento).

  • x-amz-request-id: Un identificador único para la solicitud.

  • x-amz-id-2: Un identificador único extendido para la solicitud.

  • Server: Información sobre el servidor que procesó la solicitud.

  • x-amz-server-side-encryption: Si se usó encriptación, devuelve el algoritmo usado.

Cuerpo de la respuesta:

  • Vacío. No hay contenido en el cuerpo de la respuesta para una carga exitosa.

Ejemplos

Ejemplo de solicitud (carga de un archivo de texto):

PUT /objeto1.txt HTTP/1.1
Host: my-bucket.s3.latam-scl-x.datageneral.cl
Date: Fri, 30 Jul 2024 22:00:00 GMT
Content-Length: 26
Content-Type: text/plain
Authorization: AWS AKIAIOSFODNN7EXAMPLE:QWxhZGVpbjEgXA==

Este es el contenido del objeto.

Ejemplo de respuesta:

HTTP/1.1 200 OK
Date: Fri, 30 Jul 2024 22:00:01 GMT
ETag: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
x-amz-request-id: 65423A7B884B82F1
Server: MyS3Server

Ejemplo de solicitud (carga de un archivo con metadatos):

PUT /imagen.jpg HTTP/1.1
Host: my-bucket.s3.latam-scl-x.datageneral.cl
Date: Fri, 30 Jul 2024 22:15:00 GMT
Content-Length: 102400
Content-Type: image/jpeg
Authorization: AWS AKIAIOSFODNN7EXAMPLE:QWxhZGVpbjEgXA==
x-amz-meta-nombre: "Imagen de prueba"
x-amz-meta-autor: "Usuario123"

[Datos binarios de la imagen]

Ejemplo de respuesta:

HTTP/1.1 200 OK
Date: Fri, 30 Jul 2024 22:15:01 GMT
ETag: "yyyyyyyyyyyyyyyyyyyyyyyyyyyy"
x-amz-request-id: 98765QWERTYUIOP
Server: MyS3Server

Última actualización