Todos os produtos
Search
Central de documentação

Object Storage Service:UploadPartCopy

Última atualização: Jul 03, 2026

A operação UploadPartCopy copia dados de um objeto existente como uma parte ao adicionar o cabeçalho x-oss-copy-source a uma solicitação UploadPart.

Observações de uso

Use UploadPartCopy para copiar arquivos maiores que 1 GB. Para arquivos menores que 1 GB, use CopyObject.

Ao usar UploadPartCopy:

  • Os buckets de origem e de destino devem estar na mesma região.

  • Chame InitiateMultipartUpload primeiro para obter um ID de upload.

  • Se você definir o cabeçalho x-oss-server-side-encryption na solicitação InitiateMultipartUpload, a parte carregada será criptografada. A resposta do UploadPart retorna esse cabeçalho com o algoritmo de criptografia usado. InitiateMultipartUpload.

  • Todas as partes, exceto a última, devem ser maiores que 100 KB. O tamanho das partes é validado apenas quando CompleteMultipartUpload é chamado.

Permissões

Por padrão, uma conta Alibaba Cloud tem permissões totais. Usuários RAM ou funções RAM vinculados a uma conta Alibaba Cloud não têm permissões por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de políticas do RAM ou Bucket Policy.

API

Action

Descrição

UploadPartCopy

oss:GetObject

Lê dados do objeto de origem ao carregar uma parte por cópia de um objeto existente.

oss:PutObject

Grava dados no objeto de destino ao carregar uma parte por cópia de um objeto existente.

oss:GetObjectVersion

Necessária para ler a versão especificada do objeto de origem ao carregar uma parte por cópia de um objeto existente com versionId definido.

Controle de versão

Por padrão, UploadPartCopy copia a versão atual do objeto de origem. Para copiar uma versão específica, inclua o sub-recurso versionId em x-oss-copy-source. Exemplo: x-oss-copy-source : /SourceBucketName/SourceObjectName?versionId=111111.

Nota

O SourceObjectName deve ter codificação URL. A resposta retorna o versionId do objeto copiado no cabeçalho x-oss-copy-source-version-id.

Se nenhum versionId for especificado e a versão atual for um marcador de exclusão, o OSS retornará 404 Not Found. Se o versionId especificado apontar para um marcador de exclusão, o OSS retornará 400 Bad Request.

Medição e faturamento

Ao chamar UploadPartCopy, taxas de recuperação de dados se aplicam se o objeto de origem usar a classe de armazenamento Acesso Pouco Frequente (IA). Se o objeto de origem usar a classe Archive, não tiver sido restaurado via RestoreObject e o acesso em tempo real a objetos Archive estiver ativado para o bucket, serão aplicadas taxas de recuperação de dados para acesso em tempo real a objetos Archive. As cobranças ocorrem no bucket de origem. Taxas de processamento de dados.

Sintaxe da solicitação

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

Cabeçalhos da solicitação

Além dos cabeçalhos comuns de solicitação, UploadPartCopy usa os seguintes cabeçalhos para especificar o objeto de origem e o intervalo de cópia.

Nome

Tipo

Descrição

x-oss-copy-source

String

Objeto de origem a ser copiado. Requer permissão de leitura.

Valor padrão: Nenhum

x-oss-copy-source-range

String

Intervalo de bytes a copiar do objeto de origem. Por exemplo, bytes=0-9 copia os primeiros 10 bytes.

Valor padrão: Nenhum

  • Se não especificado, todo o objeto de origem será copiado.

  • Quando especificado, a resposta inclui Content-Range com o comprimento total do arquivo e o intervalo copiado. Exemplo: Content-Range: bytes 0-9/44 indica um arquivo de 44 bytes com os bytes 0–9 copiados.

  • Se o intervalo for inválido, o objeto inteiro será copiado e Content-Range será omitido.

Os cabeçalhos a seguir aplicam-se ao objeto de origem especificado em x-oss-copy-source.

Nome

Tipo

Descrição

x-oss-copy-source-if-match

String

Copia o objeto apenas se seu ETag corresponder ao valor especificado. Caso contrário, retorna 412 Precondition Failed.

Valor padrão: Nenhum

x-oss-copy-source-if-none-match

String

Copia o objeto apenas se seu ETag for diferente do valor especificado. Caso contrário, retorna 304 Not Modified.

Valor padrão: Nenhum

x-oss-copy-source-if-unmodified-since

String

Copia o objeto apenas se ele não tiver sido modificado desde o horário especificado. Caso contrário, retorna 412 Precondition Failed.

Valor padrão: Nenhum

x-oss-copy-source-if-modified-since

String

Copia o objeto apenas se ele tiver sido modificado desde o horário especificado. Caso contrário, retorna 304 Not Modified.

Valor padrão: Nenhum

Formato: GMT. Exemplo: Fri, 13 Nov 2015 14:47:53 GMT

Exemplos

  • Exemplo de solicitação

    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

    Exemplo de resposta

    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>
  • Exemplo de solicitação com 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****

    Exemplo de resposta

    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 disponíveis para esta operação:

Interface de linha de comando ossutil

O comando ossutil para UploadPartCopy é upload-part-copy.

Códigos de erro

Código de erro

Código de status HTTP

Descrição

OperationNotSupported

400

UploadPartCopy foi chamado em um bucket que usa a classe de armazenamento Archive.