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 |
|
Lê dados do objeto de origem ao carregar uma parte por cópia de um objeto existente. |
|
|
Grava dados no objeto de destino ao carregar uma parte por cópia de um objeto existente. |
|
|
|
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.
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
|
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 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-6291756Exemplo 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. |