UploadPartCopy copia datos de un objeto existente como una parte al agregar el encabezado x-oss-copy-source a una solicitud UploadPart.
Notas de uso
Use UploadPartCopy para copiar archivos mayores a 1 GB. Para archivos menores a 1 GB, use CopyObject.
Al usar UploadPartCopy:
Los buckets de origen y destino deben estar en la misma región.
Llame primero a InitiateMultipartUpload para obtener un ID de carga.
Si establece el encabezado x-oss-server-side-encryption en la solicitud InitiateMultipartUpload, la parte cargada se cifra. La respuesta de UploadPart devuelve este encabezado con el algoritmo de cifrado utilizado. InitiateMultipartUpload.
Todas las partes, excepto la última, deben ser mayores a 100 KB. Los tamaños de las partes se validan únicamente cuando se llama a CompleteMultipartUpload.
Permisos
De forma predeterminada, una cuenta de Alibaba Cloud tiene permisos completos. Los usuarios RAM o roles RAM bajo una cuenta de Alibaba Cloud no tienen ningún permiso por defecto. La cuenta de Alibaba Cloud o el administrador de la cuenta debe otorgar permisos de operación mediante RAM policies o Bucket Policy.
|
API |
Action |
Descripción |
|
UploadPartCopy |
|
Lee datos del objeto de origen al cargar una parte mediante la copia de datos de un objeto existente. |
|
|
Escribe datos en el objeto de destino al cargar una parte mediante la copia de datos de un objeto existente. |
|
|
|
Si especifica la versión del objeto mediante versionId al cargar una parte copiando datos de un objeto existente, este permiso es obligatorio para leer la versión especificada del objeto de origen. |
Control de versiones
De forma predeterminada, UploadPartCopy copia desde la versión actual del objeto de origen. Para copiar una versión específica, incluya el sub-recurso versionId en x-oss-copy-source. Ejemplo: x-oss-copy-source : /SourceBucketName/SourceObjectName?versionId=111111.
SourceObjectName debe estar codificado en URL. La respuesta devuelve el versionId del objeto copiado en el encabezado x-oss-copy-source-version-id.
Si no se especifica ningún versionId y la versión actual es un marcador de eliminación, OSS devuelve 404 Not Found. Si el versionId especificado apunta a un marcador de eliminación, OSS devuelve 400 Bad Request.
Medición y facturación
Al llamar a UploadPartCopy, se aplican cargos por recuperación de datos si el objeto de origen usa almacenamiento de acceso poco frecuente (IA). Si el objeto de origen usa almacenamiento Archive, no se ha restaurado mediante RestoreObject y el acceso en tiempo real a objetos Archive está habilitado para el bucket, se aplican cargos por recuperación de datos para acceso en tiempo real a objetos Archive. Los cargos se facturan al bucket de origen. Data processing fees.
Sintaxis de la solicitud
PUT /ObjectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Content-Length: Size
Authorization: SignatureValue
x-oss-copy-source: /SourceBucketName/SourceObjectName
x-oss-copy-source-range: bytes=first-last
Encabezados de la solicitud
Además de los encabezados comunes de solicitud, UploadPartCopy usa los siguientes encabezados para especificar el objeto de origen y el rango de copia.
|
Nombre |
Tipo |
Descripción |
|
x-oss-copy-source |
String |
El objeto de origen que se va a copiar. Se requiere permiso de lectura. Valor predeterminado: Ninguna |
|
x-oss-copy-source-range |
String |
El rango de bytes que se copiará del objeto de origen. Por ejemplo, bytes=0-9 copia los primeros 10 bytes. Valor predeterminado: Ninguna
|
Los siguientes encabezados se aplican al objeto de origen especificado en x-oss-copy-source.
|
Nombre |
Tipo |
Descripción |
|
x-oss-copy-source-if-match |
String |
Copia el objeto solo si su ETag coincide con el valor especificado. De lo contrario, devuelve 412 Precondition Failed. Valor predeterminado: Ninguna |
|
x-oss-copy-source-if-none-match |
String |
Copia el objeto solo si su ETag difiere del valor especificado. De lo contrario, devuelve Valor predeterminado: Ninguna |
|
x-oss-copy-source-if-unmodified-since |
String |
Copia el objeto solo si no se ha modificado desde la hora especificada. De lo contrario, devuelve 412 Precondition Failed. Valor predeterminado: Ninguna |
|
x-oss-copy-source-if-modified-since |
String |
Copia el objeto solo si se ha modificado desde la hora especificada. De lo contrario, devuelve 304 Not Modified. Valor predeterminado: Ninguna Formato: GMT. Ejemplo: Fri, 13 Nov 2015 14:47:53 GMT |
Ejemplos
-
Ejemplo de solicitud
PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC98E36 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Content-Length: 6291456 Date: Wed, 22 Feb 2012 08:32:21 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e x-oss-copy-source: /oss-example/src-object x-oss-copy-source-range: bytes=100-6291756Ejemplo de respuesta
HTTP/1.1 200 OK Server: AliyunOSS Connection: keep-alive x-oss-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0**** Date: Thu, 17 Jul 2014 06:27:54 GMT <?xml version="1.0" encoding="UTF-8"?> <CopyPartResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <LastModified>2014-07-17T06:27:54.000Z </LastModified> <ETag>"5B3C1A2E053D763E1B002CC607C5****"</ETag> </CopyPartResult> -
Ejemplo de solicitud con un versionId especificado
PUT /multipart.data?partNumber=2&uploadId=63C06A5CFF6F4AE4A6BB3AD7F01C**** HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 07:01:56 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e x-oss-copy-source: /oss-example/src-object?versionId=CAEQMxiBgMC0vs6D0BYiIGJiZWRjOTRjNTg0NzQ1MTRiN2Y1OTYxMTdkYjQ0****Ejemplo de respuesta
HTTP/1.1 200 OK Server: AliyunOSS Connection: keep-alive x-oss-copy-source-version-id: CAEQMxiBgMC0vs6D0BYiIGJiZWRjOTRjNTg0NzQ1MTRiN2Y1OTYxMTdkYjQ0**** x-oss-request-id: 5CAC4364B7AEADE017000660 Date: Tue, 09 Apr 2019 07:01:56 GMT <?xml version="1.0" encoding="UTF-8"?> <CopyPartResult> <LastModified>2019-04-09T07:01:56.000Z</LastModified> <ETag>"25A9F4ABFCC05743DF6E2C886C56****"</ETag> </CopyPartResult>
SDK
SDKs para esta operación:
Interfaz de línea de comandos ossutil
El comando ossutil para UploadPartCopy es upload-part-copy.
Códigos de error
|
Código de error |
Código de estado HTTP |
Descripción |
|
OperationNotSupported |
400 |
Se llamó a UploadPartCopy en un bucket que usa la clase de almacenamiento Archive. |