CompleteMultipartUpload

Documentación: CompleteMultipartUpload

Descripción

La operación CompleteMultipartUpload ensambla un objeto a partir de las partes que se han subido mediante la operación UploadPart. Debes proporcionar una lista de los ETag de todas las partes, en el orden en que se van a concatenar.

Solicitud

Método: POST

URI:

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

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

Parámetros de la URI:

  • uploadId: Requerido. El ID del cargamento de varias partes, obtenido de la respuesta a la operación CreateMultipartUpload.

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 XML con la lista de partes).

  • Content-Type: Requerido. Debe ser application/xml.

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

Cuerpo de la solicitud:

  • Requerido. Contiene un documento XML que lista las partes y sus ETags, en el orden en que deben ser ensambladas.

<CompleteMultipartUpload>
  <Part>
    <PartNumber>1</PartNumber>
    <ETag>"parte1-etag"</ETag>
  </Part>
  <Part>
    <PartNumber>2</PartNumber>
    <ETag>"parte2-etag"</ETag>
  </Part>
  ...
</CompleteMultipartUpload>

Respuesta

Códigos de estado:

  • 200 OK: El objeto se ensambló correctamente.

  • 400 Bad Request: La solicitud no se pudo procesar debido a un error del cliente (ej., lista de partes incompleta o desordenada).

  • 403 Forbidden: El cliente no tiene permiso para completar el cargamento de varias partes.

  • 404 Not Found: El bucket o el cargamento de varias partes no existe.

  • 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.

  • 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.

Cuerpo de la respuesta:

  • Contiene un documento XML con información sobre el objeto ensamblado.

<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01">
  <Location>https://{bucket-name}.s3.latam-scl-x.datageneral.cl/nombre-del-objeto</Location>
  <Bucket>nombre-del-bucket</Bucket>
  <Key>nombre-del-objeto</Key>
  <ETag>"objeto-completo-etag"</ETag>
</CompleteMultipartUploadResult>

Ejemplos

Ejemplo de solicitud:

POST /objeto1.txt?uploadId=9876543210abcdefghijklmnopqrstuvwxyz HTTP/1.1
Host: my-bucket.s3.latam-scl-x.datageneral.cl
Date: Sat, 31 Jul 2024 01:00:00 GMT
Content-Length: 256
Content-Type: application/xml
Authorization: AWS AKIAIOSFODNN7EXAMPLE:QWxhZGVpbjEgXA==

<CompleteMultipartUpload>
  <Part>
    <PartNumber>1</PartNumber>
    <ETag>"parte1-etag-xxxxxxxxxxxxxxxxxxxxxxxxxxxx"</ETag>
  </Part>
  <Part>
    <PartNumber>2</PartNumber>
    <ETag>"parte2-etag-yyyyyyyyyyyyyyyyyyyyyyyyyyyy"</ETag>
  </Part>
</CompleteMultipartUpload>

Ejemplo de respuesta:

HTTP/1.1 200 OK
Date: Sat, 31 Jul 2024 01:00:01 GMT
Content-Type: application/xml
x-amz-request-id: 65423A7B884B82F1
Server: MyS3Server

<?xml version="1.0" encoding="UTF-8"?>
<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01">
  <Location>https://my-bucket.s3.latam-scl-x.datageneral.cl/objeto1.txt</Location>
  <Bucket>my-bucket</Bucket>
  <Key>objeto1.txt</Key>
  <ETag>"98f6bcd4621d373cade4e832627b4f6"</ETag>
</CompleteMultipartUploadResult>

Última actualización