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

Copia de piezas

Funciones

Después de crear un trabajo de carga de varias piezas, puede especificar su ID de carga y cargar una pieza en el trabajo en OBS. Alternativamente, puede hacer una invocación a la API para agregar una parte (parte de un objeto o todo el objeto).

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

No se puede determinar si una solicitud se realiza correctamente solo en función del status_code en el encabezado HTTP devuelto. Si se devuelve 200 para status_code, el servidor ha recibido la solicitud y ha comenzado a procesarla. La copia solo tiene éxito cuando el cuerpo de la respuesta contiene ETag.

Copie el objeto de origen y guárdelo como part1. Si ya existe una part1 antes de la copia, la part1 original se sobrescribirá por la part1 recién copiada. Una vez que la copia se realiza correctamente, solo se muestra la última part1. Los datos antiguos de la part1 se eliminarán. Por lo tanto, asegúrese de que la pieza de destino no existe o no tiene valor cuando se utiliza la operación de copia de pieza. De lo contrario, los datos pueden ser eliminados por error. El objeto de origen en el proceso de copia no cambia.

Obejots de Archive

Si los objetos de origen están en la clase de almacenamiento de Archive, asegúrese de que se han restaurado antes de copiarlos. Si el objeto de origen no se restaura o se está restaurando, la copia falla y se devuelve el error 403 Forbidden. El fallo se describe de la siguiente manera:

ErrorCode: InvalidObjectState

ErrorMessage: La operación no es válida para la clase de almacenamiento del objeto de origen

Sintaxis de solicitud

PUT /ObjectName?partNumber=partNum&uploadId=UploadID HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com 
Date: date
x-obs-copy-source: sourceobject
x-obs-copy-source-range:bytes=start-end
Authorization: authorization
Content-Length: length

Parámetros de solicitud

Para copiar una pieza, debe especificar el número de pieza de la pieza de destino y el número de tareas de carga de varias piezas. Tabla 1 describe los parámetros.

Tabla 1 Parámetros de solicitud

Parámetro

Descripción

Obligatorio

partNumber

Indica el ID de una parte que se va a cargar.

Tipo: integer

uploadId

Indica un ID de carga de varias partes.

Tipo: string

Encabezados de solicitud

Además de los encabezados de mensaje comunes, la solicitud utiliza dos encabezados extendidos. Tabla 3 describe el encabezado de mensaje común.

Tabla 2 Encabezados de solicitud

Encabezado

Descripción

Obligatorio

x-obs-copy-source

Indica el objeto de origen que se va a copiar.

Tipo: string

x-obs-copy-source-range

Indica el rango de bytes (start - end) que se van a copiar del objeto de origen. start indica el byte inicial de la pieza que se va a copiar y end indica el byte final.

Tipo: integer

No

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

Indica el algoritmo de encriptación para la copia de pieza 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 la copia de pieza 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 para cifrar la copia de pieza 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.

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

Indica el algoritmo para el objeto de origen cuando se utiliza SSE-C.

Tipo: string

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

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

No. Este encabezado es necesario cuando se utiliza SSE-C para copiar un objeto de origen.

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

Indica la clave para descifrar el objeto de origen cuando se utiliza SSE-C.

Tipo: string

Ejemplo: x-obs-copy-source-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-copy-source-server-side-encryption-customer-algorithm y x-obs-copy-source-server-side-encryption-customer-key-MD5.

No. Este encabezado es necesario cuando se utiliza SSE-C para copiar un objeto de origen.

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

Indica el valor MD5 de la clave para el objeto de origen 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-copy-source-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-copy-source-server-side-encryption-customer-algorithm y x-obs-copy-source-server-side-encryption-customer-key.

No. Este encabezado es necesario cuando se utiliza SSE-C para copiar un objeto de origen.

Elementos de solicitud

Esta solicitud no implica ningún elemento.

Sintaxis de respuesta

HTTP/1.1 status_code
Date: date

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<CopyPartResult xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/">
> 
    <LastModified>modifiedDate</LastModified>  
    <ETag>etag</ETag> 
</CopyPartResult>

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 si se utiliza 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 un algoritmo de encriptación. Este encabezado se incluye en una respuesta si se utiliza 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 una clave utilizada para cifrar objetos. Este encabezado se incluye en una respuesta si se utiliza SSE-C.

Tipo: string

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

Elementos de respuesta

Esta respuesta contiene elementos del resultado de una copia de pieza. Tabla 4 describe los elementos.

Tabla 4 Elementos de respuesta

Elemento

Descripción

LastModified

Indica la última vez que se modificó un objeto.

Tipo: string

ETag

Valor ETag de la parte objetivo. Es el identificador único del contenido de la pieza y se utiliza para verificar la coherencia de los datos al fusionar piezas.

Tipo: string

Respuestas de error

  1. Si la AK o la firma no son válidas, OBS devuelve 403 Forbidden y el código de error es AccessDenied.
  2. Compruebe si existe el bucket de origen o el bucket de destino. Si el bucket de origen o el bucket de destino no existe, OBS devuelve 404 Not Found y el código de error es NoSuchBucket.
  3. Si el objeto de origen no existe, OBS devuelve 404 Not Found y el código de error es NoSuchKey.
  4. Si el usuario no tiene el permiso de lectura para el objeto especificado, OBS devuelve 403 Forbidden y el código de error es AccessDenied.
  5. Si el usuario no tiene el permiso de escritura para el bucket de destino, OBS devuelve 403 Forbidden y el código de error es AccessDenied.
  6. Si la tarea especificada no existe, OBS devuelve 404 Not Found y el código de error es NoSuchUpload.
  7. Si el usuario no es el iniciador de la tarea de carga de varias partes, OBS devuelve 403 Forbidden y el código de error es AccessDenied.
  8. Cuando el tamaño de un artículo copiado supera los 5 GB, OBS devuelve 400 Bad Request.
  9. Si un número de pieza no se encuentra dentro del rango de 1 a 10000, OBS devuelve el código de error 400 Bad Request.

Otros errores se incluyen en Tabla 2.

Modelo de solicitud

PUT /tobject02?partNumber=2&uploadId=00000163D40171ED8DF4050919BD02B8 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 05:16:32 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:dSnpnNpawDSsLg/xXxaqFzrAmMw=
x-obs-copy-source: /destbucket/object01

Modelo de respuesta

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D40ABBD20405D30B0542
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCTIJpD2efLy5o8sTTComwBb2He0j11Ne
Content-Type: application/xml
Date: WED, 01 Jul 2015 05:16:32 GMT
Transfer-Encoding: chunked

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CopyPartResult xmlns="http://obs.ap-southeast-1.myhuaweicloud.com/doc/2015-06-30/">
  <LastModified>2015-07-01T05:16:32.344Z</LastModified>
  <ETag>"3b46eaf02d3b6b1206078bb86a7b7013"</ETag>
</CopyPartResult>