Todos los productos
Search
Centro de documentos

Object Storage Service:UploadPartCopy

Última actualización: Sep 03, 2026

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

oss:GetObject

Lee datos del objeto de origen al cargar una parte mediante la copia de datos de un objeto existente.

oss:PutObject

Escribe datos en el objeto de destino al cargar una parte mediante la copia de datos de un objeto existente.

oss:GetObjectVersion

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.

Nota

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

  • Si no se especifica, se copia todo el objeto de origen.

  • Si se especifica, la respuesta incluye Content-Range con la longitud total del archivo y el rango copiado. Ejemplo: Content-Range: bytes 0-9/44 indica un archivo de 44 bytes con los bytes 0–9 copiados.

  • Si el rango no es válido, se copia todo el objeto y se omite Content-Range.

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 304 Not Modified.

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-6291756

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