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-14 GMT+08:00

Inicialização de uma tarefa de multiparte

Funções

Antes de usar essa operação, faça uma chamada de operação de API para criar uma tarefa de carregamento de multiparte. O sistema retornará um ID de upload globalmente exclusivo como o identificador de carregamento de multiparte. Esse identificador pode ser usado em solicitações subsequentes, incluindo UploadPart, CompleteMultipartUpload e ListParts. Criar uma tarefa de carregamento de multiparte não afeta o objeto que tem o mesmo nome que o objeto a ser carregado em multiparte. Você pode criar mais de uma tarefa de carregamento de multiparte para um objeto. Essa solicitação de operação pode conter cabeçalhos x-obs-acl, x-obs-meta-*, Content-Type, and Content-Encoding. Os cabeçalhos são registrados nos metadados de carregamento de multiparte.

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

Sintaxe da solicitação

1
2
3
4
POST /ObjectName?uploads  HTTP/1.1  
Host: bucketname.obs.region.myhuaweicloud.com 
Date: date
Authorization: authorization

Parâmetros de solicitação

Essa solicitação usa parâmetros para especificar um carregamento de multiparte. Tabela 1 descreve os parâmetros.

Tabela 1 Parâmetros de solicitação

Parâmetro

Descrição

Obrigatório

uploads

Indica um carregamento de multiparte.

Tipo: string

Sim

encoding-type

Codifica a chave na resposta com base no tipo especificado. Se a chave contiver caracteres de controle que não são suportados pelo padrão XML 1.0, você poderá definir o tipo de codificação para codificar a chave em resposta.

Tipo: string

Valor opcional: url

Não

Cabeçalhos de solicitação

A solicitação pode usar cabeçalhos adicionais, conforme mostrado em Tabela 2.

Tabela 2 Cabeçalhos de solicitação

Cabeçalho

Descrição

Obrigatório

x-obs-acl

Ao inicializar uma tarefa de carregamento de multiparte, você pode adicionar esse cabeçalho de mensagem para definir a política de controle de permissão para o objeto. As políticas comuns predefinidas são as seguintes: private, public-read, e public-read-write. Para obter detalhes sobre cada política, consulte a configuração ACL usando campos de cabeçalho na ACL.

Tipo: string

Nota: Este cabeçalho é uma política predefinida expressa numa cadeia de caracteres.

Exemplo: x-obs-acl: public-read-write

Não

x-obs-grant-read

Ao inicializar uma tarefa de carregamento de multiparte, você pode usar esse cabeçalho para autorizar todos os usuários em uma conta a ler o objeto e obter os metadados do objeto.

Tipo: string

Exemplo: x-obs-grant-read: ID=domainID Se várias contas forem autorizadas, separe-as com vírgulas (,).

Não

x-obs-grant-read-acp

Ao inicializar uma tarefa de carregamento de multiparte, você pode usar esse cabeçalho para autorizar todos os usuários em uma conta a permissão para obter a ACL do objeto.

Tipo: string

Exemplo: x-obs-grant-read-acp: ID=domainID Se várias contas forem autorizadas, separe-as com vírgulas (,).

Não

x-obs-grant-write-acp

Ao inicializar uma tarefa de carregamento de multiparte, você pode usar esse cabeçalho para autorizar todos os usuários em uma conta a permissão para gravar a ACL do objeto.

Tipo: string

Exemplo: x-obs-grant-write-acp: ID=domainID Se várias contas forem autorizadas, separe-as com vírgulas (,).

Não

x-obs-grant-full-control

Ao inicializar uma tarefa de carregamento de multiparte, você pode usar esse cabeçalho para autorizar todos os usuários em uma conta a permissão para ler o objeto, obter os metadados do objeto, obter a ACL do objeto e gravar a ACL do objeto.

Tipo: string

Exemplo: x-obs-grant-full-control: ID=domainID Se várias contas forem autorizadas, separe-as com vírgulas (,).

Não

x-obs-storage-class

Ao iniciar uma tarefa de carregamento de multiparte, você pode adicionar esse cabeçalho para especificar a classe de armazenamento do objeto. Se você não usar esse cabeçalho, a classe de armazenamento de objeto será a classe de armazenamento padrão do bucket.

Tipo: string

O OBS fornece três classes de armazenamento: Padrão (STANDARD), Acesso Infrequente (WARM) e Arquivo (COLD). Portanto, os valores para este elemento podem ser STANDARD, WARM, e COLD. O feitiço desses valores é sensível a maiúsculas e minúsculas.

Exemplo: x-obs-storage-class: STANDARD

Não

x-obs-persistent-headers

Ao inicializar uma tarefa de upload de várias partes, você pode adicionar o cabeçalho x-obs-persistent-headers em uma solicitação HTTP para especificar um ou mais cabeçalhos de resposta definidos pelo usuário. Depois que todas as partes do upload de várias partes forem mescladas, os cabeçalhos de resposta definidos pelo usuário serão retornados no cabeçalho de resposta quando você recuperar o objeto ou consultar os metadados do objeto.

Tipo: string

Formato: x-obs-persistent-headers: key1:base64_encode(value1),key2:base64_encode(value2)...

Nota:: Itens, como key1 e key2, são cabeçalhos definidos pelo usuário. Se eles contiverem caracteres não-ASCII ou irreconhecíveis, eles podem ser codificados usando URL ou Base64. O servidor processa esses cabeçalhos como strings de caracteres, mas não os decodifica. Itens, como value1 e value2 são os valores dos cabeçalhos correspondentes. base64_encode indica que o valor é codificado usando Base64. Um cabeçalho definido pelo usuário e seu valor codificado em Base64 são conectados usando um (:) de dois pontos para formar um par chave-valor. Todos os pares chave-valor são separados com uma vírgula (,) e são colocados no cabeçalho x-obs-persistent-headers. O servidor então decodifica o valor carregado.

Examplo: x-obs-persistent-headers: key1:dmFsdWUx,key2:dmFsdWU

Depois que todas as partes do upload de várias partes forem mescladas, os cabeçalhos key1:value1 e key2:value2 serão retornados, respectivamente, quando você baixar o objeto e obter os metadados do objeto.

Restrições:

1. Cabeçalhos de resposta definidos pelo usuário especificados dessa maneira não podem ser prefixados com x-obs-, ou seja, você pode usar key1, em vez de x-obs-key1, como o prefixo.

2. O cabeçalho de HTTP padrão, por exemplo, host/content-md5/origin/range/Content-Disposition, não pode ser usado.

3. O comprimento total do cabeçalho e dos metadados definidos pelo usuário não pode exceder 8 KB.

4. Se as mesmas chaves forem transferidas, separe os valores com vírgulas (,) e coloque esses valores na mesma chave para retornar.

Não

x-obs-website-redirect-location

Se um bucket estiver configurado com a função de hospedagem de sites estáticos, ele redirecionará as solicitações desse objeto para outro objeto no mesmo bucket ou para um URL externo. O OBS armazena o valor desse cabeçalho nos metadados do objeto.

Tipo: string

Não há valor padrão.

Restrição: O valor deve ser prefixado por uma barra (/), http://, ou https://. O comprimento do valor não pode exceder 2 KB.

Não

x-obs-server-side-encryption

Indica que SSE-KMS é usado.

Tipo: string

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

Não. Esse cabeçalho é necessário quando o SSE-KMS é usado.

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

Indica a ID da chave mestra. Este cabeçalho é usado no modo SSE-KMS. Se o cliente não fornecer a chave mestra, a chave mestra padrão será usada.

Tipo: string

Os dois formatos a seguir são suportados:

1. regionID:domainID:key/key_id

2. 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 criado em DEW.

Exemplo:

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

2. x-obs-server-side-encryption-kms-key-id:4f1cd4de-ab64-4807-920a-47fc42e7f0d0

Não

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.

Não. Este cabeçalho é necessário quando SSE-C é usado.

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

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

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.

x-obs-expires

Indica o tempo de expiração de um objeto, em dias. Um objeto será automaticamente excluído quando expirar (calculado a partir do tempo da última modificação do objeto).

Tipo: inteiro

Exemplo: x-obs-expires:3

Não

Para obter detalhes sobre outros cabeçalhos de mensagens comuns, consulte Tabela 3.

Elementos de solicitação

Este pedido não envolve elementos.

Sintaxe da resposta

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
HTTP/1.1 status_code
Date: date
Content-Length: length
Connection: status

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<InitiateMultipartUploadResult xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/">
    <Bucket>BucketName</Bucket>  
    <Key>ObjectName</Key>  
    <UploadId>uploadID</UploadId> 
</InitiateMultipartUploadResult> 

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

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

Essa resposta contém elementos para indicar o ID de upload e a chave (nome) do objeto (balde) para o qual o carregamento de multiparte foi iniciado. As informações devolvidas são utilizadas nas operações subsequentes. Tabela 4 descreve os elementos.

Tabela 4 Elementos de resposta

Elemento

Descrição

InitiateMultipartUploadResult

Contêiner de uma tarefa de carregamento de multiparte.

Tipo: XML

Bucket

Indica o nome do bucket no qual o carregamento de multiparte foi iniciado.

Tipo: string

Key

Indica a chave de objeto em um carregamento de multiparte.

Tipo: string

UploadId

Indica a ID para o carregamento de multiparte iniciado. Esse ID é usado para a operação subseqüente.

Tipo: string

EncodingType

Encoding type of the key of an object that is uploaded in the multipart mode. If encoding-type is specified in the request, the Key in the response is encoded.

Type: string

Respostas de erro

1. Se a AK ou assinatura for inválida, o OBS retornará 403 Forbidden e o código de erro será AccessDenied.

2. Se o bucket não existir, o OBS retornará 404 Not Found e o código de erro será NoSuchBucket.

3. Verifique se o usuário tem a permissão de gravação para o bucket especificado. Se não, OBS retorna 403 Forbidden e o código de erro é AccessDenied.

Outros erros estão incluídos em Tabela 2.

Solicitação de exemplo 1

Inicializar uma tarefa de multiparte.

1
2
3
4
POST /objectkey?uploads  HTTP/1.1 
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 05:14:52 GMT 
Authorization: OBS AKIAIOSFODNN7EXAMPLE:VGhpcyBtZXNzYWdlIHNpZ25lZGGieSRlbHZpbmc=

Resposta de exemplo 1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
HTTP/1.1 200 OK 
Server: OBS
x-obs-id-2: Weag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg== 
x-obs-request-id: 996c76696e6727732072657175657374 
Date: WED, 01 Jul 2015 05:14:52 GMT
Content-Length: 303

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<InitiateMultipartUploadResult xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/">
  <Bucket>bucketname</Bucket>  
  <Key>objectkey</Key>  
  <UploadId>DCD2FC98B4F70000013DF578ACA318E7</UploadId> 
</InitiateMultipartUploadResult>

Solicitação de exemplo 2

A ACL é transportada quando a tarefa de várias partes é inicializada.

1
2
3
4
5
POST /objectkey?uploads  HTTP/1.1 
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 05:15:43 GMT
x-obs-grant-write-acp:ID=52f24s3593as5730ea4f722483579ai7,ID=a93fcas852f24s3596ea8366794f7224
Authorization: OBS AKIAIOSFODNN7EXAMPLE:VGhpcyBtZXNzYWdlIHNpZ25lZGGieSRlbHZpbmc=

Resposta de exemplo 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
HTTP/1.1 200 OK 
Server: OBS
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCTnv+dtB51p+IVhAvWN7s5rSKhcWqDFs 
x-obs-request-id: BB78000001648457112DF37FDFADD7AD 
Date: WED, 01 Jul 2015 05:15:43 GMT
Content-Length: 303

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<InitiateMultipartUploadResult xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/">
  <Bucket>bucketname</Bucket>  
  <Key>objectkey</Key>  
  <UploadId>000001648453845DBB78F2340DD460D8</UploadId> 
</InitiateMultipartUploadResult>