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.
Cabeçalhos de solicitação
Essa solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 3.
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.
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
- Se um número de peça não estiver dentro do bucket de 1 a 10000, o OBS retorna 400 Bad Request.
- Se um tamanho de peça excedeu 5 GB, o código de erro 400 Bad Request é retornado.
- Se a AK ou assinatura for inválida, o OBS retornará 403 Forbidden e o código de erro será AccessDenied.
- 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.
- 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.
- 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.
- 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 |