Exportar (0) Imprimir
Expandir Tudo

Colocar Bloco

Atualizado: fevereiro de 2014

A operação Put Block cria um novo bloco a ser confirmado como parte de um blob.

A solicitação Put Block pode ser criada da seguinte maneira. HTTPS é recomendado. Substitua myaccount pelo nome da sua conta de armazenamento:

 

  URI de solicitação do método PUT Versão de HTTP

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id

HTTP/1.1

Ao fazer uma solicitação no serviço de armazenamento emulado, especifique o nome de host do emulador e a porta do serviço Blob como 127.0.0.1:10000, seguido pelo nome da conta de armazenamento emulado:

 

  URI de solicitação do método PUT Versão de HTTP

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id

HTTP/1.1

Para obter mais informações, consulte Uso do Azure Storage Emulator para desenvolvimento e testes.

 

Parâmetro Descrição

blockid

Obrigatória. Um valor de cadeia de caracteres na Base64 válido que identifica o bloco. Antes da codificação, a cadeia de caracteres deve ter um tamanho menor ou igual a 64 bytes.

Para um determinado blob, o comprimento do valor especificado para o parâmetro blockid deve ter o mesmo tamanho para cada bloco.

Observe que a cadeia de caracteres na Base64 deve ser codificada com URL.

timeout

Opcional. O parâmetro timeout é expresso em segundos. Para obter mais informações, consulte Definição de tempos limite para operações de serviço Blob.

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais.

 

Cabeçalho de solicitação Descrição

Authorization

Obrigatória. Especifica o esquema de autenticação, o nome da conta e a assinatura. Consulte Autenticação federada para os Serviços de Armazenamento do Azure para obter mais informações.

Date ou x-ms-date

Obrigatória. Especifica o Tempo Universal Coordenado (UTC) para a solicitação. Para obter mais informações, consulte Autenticação federada para os Serviços de Armazenamento do Azure.

x-ms-version

Obrigatório para todas as solicitações autenticadas. Especifica a versão da operação a ser usada para esta solicitação. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure.

Content-Length

Obrigatória. O comprimento do bloco da solicitação em bytes. O bloco deve ter um tamanho menor ou igual a 4 MB.

Quando o comprimento não for fornecido, a operação falhará com o código de status 411 (Comprimento Obrigatório).

Content-MD5

Opcional. Um hash MD5 do conteúdo do bloco. O hash é usado para verificar a integridade do bloco durante o transporte. Quando esse cabeçalho é especificado, o serviço de armazenamento compara o hash do conteúdo que foi recebido com esse valor de cabeçalho.

Observe que esse hash MD5 não é armazenado com o blob.

Se os dois hashes não corresponderem, a operação falhará com o código de erro 400 (Solicitação Incorreta).

x-ms-lease-id:<ID>

Obrigatório se o blob tiver uma concessão ativa. Para executar essa operação em um blob com uma concessão ativa, especifique a ID de concessão válida para esse cabeçalho.

x-ms-client-request-id

Opcional. Fornece um valor opaco, gerado pelo cliente, com um limite de caracteres de 1 KB que é registrado nos logs de análise quando o log de análise de armazenamento está habilitado. É altamente recomendável usar esse cabeçalho para correlacionar atividades do cliente com solicitações recebidas pelo servidor. Para obter mais informações, consulte Sobre o registro em log da Análise de Armazenamento e Log do Windows Azure: Usando logs para rastrear solicitações de armazenamento.

O corpo da solicitação tem o conteúdo do bloco.

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1

Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 14:37:35 GMT
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=
Content-Length: 1048576

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.

Uma operação bem-sucedida retorna o código de status 201 (Criado).

Para obter informações sobre códigos de status, consulte Status e códigos de erro.

A resposta para esta operação inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos padrão HTTP adicionais. Todos os cabeçalhos padrão obedecem à especificação de protocolo HTTP/1.1.

 

Cabeçalho de resposta Descrição

Content-MD5

Esse cabeçalho é retornado para que o cliente possa verificar a integridade do conteúdo da mensagem. O valor desse cabeçalho é computado pelo serviço Blob; ele não é necessariamente o mesmo valor especificado nos cabeçalhos de solicitação.

x-ms-request-id

Esse cabeçalho identifica a solicitação que foi feita de forma exclusiva e pode ser usado para solucionar problemas na solicitação. Para obter mais informações, consulte Solucionando problemas de operações de API.

x-ms-version

Indica a versão do serviço Blob usado para executar a solicitação. Esse cabeçalho é retornado para solicitações feitas na versão 2009-09-19 e mais recente.

Date

Um valor de data/hora UTC gerado pelo serviço que indica a hora em que a resposta foi iniciada.

Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: BN3lsXf+t19nMGs+vYakPA==
Date: Sun, 25 Sep 2011 23:47:09 GMT
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

Essa operação poderá ser chamada pelo proprietário da conta e por qualquer pessoa com uma assinatura de acesso compartilhado que tenha permissão para gravar nesse blob ou em seu contêiner.

Put Block carrega um bloco para inclusão futura em um blob de blocos. Um bloco pode ter até 4 MB.

Após o carregamento de um conjunto de blocos, você poderá criar ou atualizar o blob no servidor desse conjunto chamando a operação Colocar lista de blocos. Cada bloco no conjunto é identificado por uma ID de bloco que é exclusiva dentro desse blob. As IDs do bloco têm escopo para um blob específico, de forma que os blobs diferentes possam ter os mesmos blocos com as mesmas IDs.

Se você chamar Put Block em um blob que ainda não existe, um novo blob de bloco é criado com um comprimento de conteúdo de 0. Este blob é enumerado pela operação List Blobs se a opção include=uncommittedblobs for especificada. O bloco ou os blocos carregados não são confirmados até você chamar Put Block List no novo blob. Um blob criado dessa maneira é mantido no servidor por uma semana; se você não adicionar mais blocos ou blocos confirmadas ao blob nesse período, o blob será limpo.

Atualmente, o tamanho máximo do blob com suporte da operação Put Block List é 200 GB e até 50.000 blocos. Um blob pode ter um máximo de 100.000 blocos não confirmados em um determinado momento e o conjunto de blocos não confirmadas não pode exceder 400 GB no total. Se esses máximos forem excedidos, o serviço retornará o código de status 413 (RequestEntityTooLarge).

Um bloco que foi carregado com êxito com a operação Put Block não se torna parte de um blob até que seja confirmado com Put Block List. Antes de chamar Put Block List para confirmar o blob novo ou atualizado, algumas chamadas para Obter Blob retornam os conteúdos de blob sem a inclusão do bloco não confirmado.

Se você carregar um bloco com a mesma ID de bloco de outro bloco que ainda não foi confirmado, o bloco carregado pela última vez com essa ID será confirmado na próxima operação Put Block List bem-sucedida.

Depois de chamar Put Block List, todos os blocos não confirmadas especificados na lista de blocos são confirmados como parte do novo blob. Todos os blocos não confirmados que não estiverem especificados na lista de blocos do blob serão limpos e removidos do serviço Blob. Todos os blocos não confirmados também serão limpos se não houver nenhuma chamada bem-sucedida a Put Block ou a Put Block List no mesmo blob dentro de uma semana após a última operação Put Block bem-sucedida. Se Colocar Blob for chamado no blob, todos os blocos não confirmados serão limpos.

Se o blob tiver uma concessão ativa, o cliente deverá especificar uma ID de concessão válida na solicitação para gravar um bloco no blob. Se o cliente não especificar uma ID de concessão ou especificar uma ID inválida, o serviço Blob retornará o código de status 412 (Falha na Pré-condição). Se o cliente especificar uma ID de concessão, mas o blob não tiver uma concessão ativa, o serviço Blob também retornará o código de status 412 (Falha na Pré-condição).

Para um determinado blob, todas as IDs de bloco devem ter o mesmo tamanho. Se um bloco for carregado com uma ID de bloco de comprimento diferente das IDs de bloco para blocos não confirmadas existentes, o serviço retornará o código de resposta de erro 400 (Solicitação Incorreta).

Se você tentar carregar um bloco com mais de 4 MB, o serviço retornará o código de status 413 (Entidade de Solicitação Muito Grande). O serviço também retorna informações adicionais sobre o erro na resposta, inclusive o tamanho máximo permitido do bloco em bytes.

Chamar Put Block não atualiza a hora em que um blob existente foi modificado pela última vez.

Chamar Put Block em um blob de páginas retorna um erro.

Mostrar:
© 2014 Microsoft