Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-07 GMT+08:00

Carregamento de multiparte

Funções

Depois de iniciar um carregamento de multiparte, você pode usar essa operação para fazer carregamento de multiparte para o carregamento de multiparte usando seu ID de tarefa. Quando as partes são carregadas em um carregamento de multiparte de um objeto, a sequência de carregamento não afeta a mesclagem de partes, ou seja, várias partes podem ser carregadas simultaneamente.

Os tamanhos das peças variam de 100 KB a 5 GB. No entanto, quando as peças estão sendo mescladas, o tamanho da última peça carregada varia de 0 a 5 GB. A ID da peça de carregamento varia de 1 a 10.000.

Esta operação suporta encriptação do lado do servidor.

O valor de partNumber em uma tarefa de várias partes é exclusivo. Se você carregar uma parte do mesmo partNumber repetidamente, a última parte carregada substituirá a anterior. Quando vários uploads simultâneos da mesma parte partNumber do mesmo objeto são realizados, a política Last Write Win é aplicada. A hora da Last Write é definida como a hora em que os metadados da parte são criados. Para garantir a precisão dos dados, o cliente deve ser bloqueado para garantir o carregamento de multiparte da mesma parte do mesmo objeto. O upload simultâneo de diferentes partes do mesmo objeto não precisa ser bloqueado.

Sintaxe da solicitação

PUT /ObjectName?partNumber=partNum&uploadId=uploadID  HTTP/1.1  
Host: bucketname.obs.region.myhuaweicloud.com 
Date: date
Content-Length: length 
Authorization: authorization
Content-MD5:md5
<object Content>

Parâmetros de solicitação

Esta solicitação usa parâmetros para especificar o ID da tarefa de carregamento e o número da peça. Tabela 1 descreve os parâmetros.

Tabela 1 Parâmetros de solicitação

Parâmetro

Descrição

Obrigatório

partNumber

Indica o ID de uma peça a ser carregada. O valor é um número inteiro de 1 a 10000.

Tipo: inteiro

Sim

uploadId

Indica um ID de carregamento de multiparte.

Tipo: string

Sim

Cabeçalhos de solicitação

Essa solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 3.

Tabela 2 Cabeçalhos de solicitação de encriptação do servidor

Cabeçalho

Descrição

Obrigatório

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

Indica um algoritmo de encriptação. O cabeçalho é usado no modo SSE-C.

Tipo: string

Exemplo: x-obs-server-encryption-customer-algorithm:AES256

Restrições: Este cabeçalho deve ser usado em conjunto com x-obs-server-side-encryption-customer-key e x-obs-server-side-encryption-customer-key-MD5.

Se algum processo é anormal, este cabeçalho é necessário quando SSE-C é usado. O algoritmo de encriptação deve ser o mesmo que o algoritmo usado para iniciar tarefas de carregamento de multiparte.

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

Indica uma chave usada para criptografar objetos. O cabeçalho é usado no modo SSE-C. Essa chave é usada para criptografar objetos.

Tipo: string

Exemplo: x-obs-server-encryption-side-customer-key:K7QkYpBkM5+hcs27fsNkUnNVaobncnLht/rCB2o/9Cw=

Restrições: Esse cabeçalho é uma chave de 256 bits codificada em Base64 e deve ser usado em conjunto com x-obs-server-side-encryption-customer-algorithm e x-obs-server-side-encryption-customer-key-MD5.

Se você selecionar No, este cabeçalho será necessário quando SSE-C for usado. A chave deve ser a mesma usada para iniciar tarefas de carregamento de multiparte.

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

Indica o valor MD5 de uma chave usada para criptografar objetos. O cabeçalho é usado no modo SSE-C. O valor MD5 é usado para verificar se ocorre algum erro durante a transmissão da chave.

Tipo: string

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

Restrições: Esse cabeçalho é uma string codificada em Base64 de 128 bits e deve ser usada em conjunto com x-obs-server-side-encryption-customer-algorithm e x-obs-server-side-encryption-customer-key.

Se algum processo é anormal, este cabeçalho é necessário quando SSE-C é usado. O valor MD5 deve ser o mesmo usado para iniciar tarefas de carregamento de multiparte.

Elementos de solicitação

Este pedido não envolve elementos.

Sintaxe da resposta

1
2
3
4
HTTP/1.1 status_code
Date: date
ETag: etag
Content-Length: length

Cabeçalhos de resposta

A resposta à solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 1.

Tabela 3 Cabeçalhos de resposta adicionais

Cabeçalho

Descrição

x-obs-server-side-encryption

Este cabeçalho é incluído em uma resposta se SSE-KMS for usado.

Tipo: string

Exemplo: x-obs-server-side-encryption:kms

x-obs-server-side-encryption-kms-key-id

Indica a ID da chave mestra. Este cabeçalho é incluído em uma resposta se SSE-KMS for usado.

Tipo: string

Formato:regionID:domainID:key/key_id

regionID é o ID da região à qual a chave pertence. domainID é o ID da conta do locatário ao qual a chave pertence. key_id é o ID da chave usado nessa encriptação.

Exemplo: x-obs-server-side-encryption-kms-key-id:region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

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

Indica um algoritmo de encriptação. Este cabeçalho é incluído em uma resposta se SSE-C é usado.

Tipo: string

Exemplo: x-obs-server-encryption-customer-algorithm:AES256

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

Indica o valor MD5 de uma chave usada para criptografar objetos. Este cabeçalho é incluído em uma resposta se SSE-C é usado.

Tipo: string

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

Elementos de resposta

Esta resposta não envolve elementos.

Respostas de erro

  1. Se um número de peça não estiver dentro do bucket de 1 a 10000, o OBS retorna 400 Bad Request.
  2. Se um tamanho de peça excedeu 5 GB, o código de erro 400 Bad Request é retornado.
  3. Se a AK ou assinatura for inválida, o OBS retornará 403 Forbidden e o código de erro será AccessDenied.
  4. Verifique se o bucket existe. Se o bucket não existir, o OBS retornará 404 Not Found e o código de erro será NoSuchBucket.
  5. Exiba a ACL do bucket para verificar se o usuário tem a permissão de leitura para o bucket solicitado. Se o usuário não tiver a permissão de leitura, o OBS retornará 403 AccessDenied.
  6. Verifique se a tarefa de carregamento de várias partes existe. Se a tarefa não existir, o OBS retornará 404 Not Found e o código de erro será NoSuchUpload.
  7. Verifique se o usuário da solicitação é o iniciador da tarefa de carregamento de multiparte. Caso contrário, o OBS retornará 403 Forbidden e o código de erro será AccessDenied.

Outros erros estão incluídos.

Solicitação de exemplo

PUT /object02?partNumber=1&uploadId=00000163D40171ED8DF4050919BD02B8 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 05:15:55 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:ZB0hFwaHubi1aKHv7dSZjJts40g=
Content-Length: 102015348

[102015348 Byte part content]

Resposta de exemplo

1
2
3
4
5
6
7
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D40956A703289CA066F1
ETag: "b026324c6904b2a9cb4b88d6d61c81d1"
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCUQu/EOEVSMa04GXVwy0z9WI+BsDKvfh
Date: WED, 01 Jul 2015 05:15:55 GMT
Content-Length: 0