Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-18 GMT+08:00

Carga de piezas

Funciones

Después de iniciar una carga de varias partes, puede utilizar esta operación para cargar partes para la carga de varias partes mediante su ID de tarea. Cuando se cargan partes en una carga de varias partes de un objeto, la secuencia de carga no afecta a la fusión de partes, es decir, se pueden cargar varias partes simultáneamente.

Los tamaños de las piezas varían de 100 KB a 5 GB. Sin embargo, cuando se fusionan partes, el tamaño de la última parte cargada varía de 0 a 5 GB. El ID de pieza de carga oscila entre 1 y 10,000.

Esta operación admite la encriptación del lado del servidor.

El valor de partNumber en una tarea de varias partes es único. Si carga una parte del mismo partNumber repetidamente, la última parte cargada sobrescribirá la anterior. Cuando se realiza la carga simultánea múltiple de la misma parte de partNumber del mismo objeto, se aplica la política de Last Write Win. La hora de Last Write se define como la hora en que se crean los metadatos de la pieza. Para garantizar la precisión de los datos, el cliente debe estar bloqueado para garantizar la carga simultánea de la misma parte del mismo objeto. No es necesario bloquear la carga simultánea de diferentes partes del mismo objeto.

Sintaxis de solicitud

PUT /ObjectName?partNumber=partNum&uploadId=uploadID  HTTP/1.1  
Host: bucketname.obs.region.myhuaweicloud.com 
Date: date
Content-Length: length 
Authorization: authorization
Content-MD5:md5
<object Content>

Parámetros de solicitud

Esta solicitud utiliza parámetros para especificar el ID de tarea de carga y el número de pieza. Tabla 1 describe los parámetros.

Tabla 1 Parámetros de solicitud

Parámetro

Descripción

Obligatorio

partNumber

Indica el ID de un artículo que se va a cargar. El valor debe ser un número entero entre 1 y 10000.

Tipo: integer

uploadId

Indica un ID de carga de varias partes.

Tipo: string

Encabezados de solicitud

Esta solicitud utiliza encabezados comunes. Para obtener más información, véase Tabla 3.

Tabla 2 Encabezados de solicitud de encriptación del servidor

Encabezado

Descripción

Obligatorio

x-obs-server-side-encryption-customer-algorithm

Indica el algoritmo de encriptación cuando se utiliza SSE-C.

Tipo: string

Ejemplo: x-obs-server-side-encryption-customer-algorithm:AES256

Restricción: Este encabezado debe usarse junto con x-obs-server-side-encryption-customer-key y x-obs-server-side-encryption-customer-key-MD5.

No. Este encabezado se requiere cuando se utiliza SSE-C. El algoritmo de encriptación debe ser el mismo que el utilizado para iniciar tareas de carga de varias partes.

x-obs-server-side-encryption-customer-key

Indica la clave para cifrar objetos cuando se utiliza SSE-C.

Tipo: string

Ejemplo: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restricción: Este encabezado es una clave de 256 bits codificada en Base64 y debe usarse junto con x-obs-server-side-encryption-customer-algorithm y x-obs-server-side-encryption-customer-key-MD5.

No. Este encabezado se requiere cuando se utiliza SSE-C. La clave debe ser la misma que se utiliza para iniciar tareas de carga de varias partes.

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

Indica el valor MD5 de la clave de encriptación cuando se utiliza SSE-C. El valor MD5 se utiliza para comprobar si se produce algún error durante la transmisión de la clave.

Tipo: string

Ejemplo: x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

Restricción: Este encabezado es un valor MD5 de 128 bits codificado en Base64 y debe usarse junto con x-obs-server-side-encryption-customer-algorithm y x-obs-server-side-encryption-customer-key.

No. Este encabezado se requiere cuando se utiliza SSE-C. El valor MD5 debe ser el mismo que el utilizado para iniciar tareas de carga de varias partes.

Elementos de solicitud

Esta solicitud no implica ningún elemento.

Sintaxis de respuesta

1
2
3
4
HTTP/1.1 status_code
Date: date
ETag: etag
Content-Length: length

Encabezados de respuesta

La respuesta a la solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 1.

Tabla 3 Encabezados de respuesta adicionales

Encabezado

Descripción

x-obs-server-side-encryption

Este encabezado se incluye en una respuesta si se utiliza SSE-KMS.

Tipo: string

Ejemplo: x-obs-server-side-encryption:kms

x-obs-server-side-encryption-kms-key-id

Indica el ID de clave principal. Este encabezado se incluye en una respuesta cuando se usa SSE-KMS.

Tipo: string

Formato: regionID:domainID:key/key_id

regionID indica el ID de la región a la que pertenece la clave. domainID indica el ID del tenant al que pertenece la clave. key_id indica el ID de clave utilizado en esta encriptación.

Ejemplo: x-obs-server-side-encryption-kms-key-id:region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

x-obs-server-side-encryption-customer-algorithm

Indica el algoritmo de encriptación. Este encabezado se incluye en una respuesta cuando se usa SSE-C.

Tipo: string

Ejemplo: x-obs-server-side-encryption-customer-algorithm:AES256

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

Indica el valor MD5 de la clave para cifrar objetos. Este encabezado se incluye en una respuesta cuando se usa SSE-C.

Tipo: string

Ejemplo: x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

Elementos de respuesta

Esta respuesta no contiene elementos.

Respuestas de error

  1. Si un número de pieza no está dentro del intervalo de 1 a 10000, OBS devuelve 400 Bad Request.
  2. Si un tamaño de pieza ha superado los 5 GB, se devuelve el código de error 400 Bad Request.
  3. Si la AK o la firma no son válidas, OBS devuelve 403 Forbidden y el código de error es AccessDenied.
  4. Compruebe si el bucket existe. Si no se encuentra el bucket, OBS devuelve 404 Not Found y el código de error es NoSuchBucket.
  5. Vea la ACL del bucket para comprobar si el usuario tiene el permiso de lectura para el bucket solicitado. Si el usuario no tiene el permiso de lectura, OBS devuelve 403 AccessDenied.
  6. Compruebe si existe la tarea de carga de varias partes. Si la tarea no existe, OBS devuelve 404 Not Found y el código de error es NoSuchUpload.
  7. Compruebe si el usuario de solicitud es el iniciador de la tarea de carga de varias partes. Si no, OBS devuelve 403 Forbidden y el código de error es AccessDenied.

Otros errores se incluyen en Tabla 2.

Modelo de solicitud

PUT /object02?partNumber=1&uploadId=00000163D40171ED8DF4050919BD02B8 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 05:15:55 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:ZB0hFwaHubi1aKHv7dSZjJts40g=
Content-Length: 102015348

[102015348 Byte part content]

Modelo de respuesta

1
2
3
4
5
6
7
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D40956A703289CA066F1
ETag: "b026324c6904b2a9cb4b88d6d61c81d1"
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCUQu/EOEVSMa04GXVwy0z9WI+BsDKvfh
Date: WED, 01 Jul 2015 05:15:55 GMT
Content-Length: 0