Coloque o bloco de URL

A Put Block From URL operação cria um novo bloco a ser cometido como parte de uma bolha onde o conteúdo é lido a partir de um URL. Esta API está disponível a partir da 2018-03-28 versão.

Pedir

O Put Block From URL pedido pode ser construído da seguinte forma. HTTPS é recomendado. Substitua a minha conta pelo nome da sua conta de armazenamento:

PUT Método Request URI Versão HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Serviço de Armazenamento emulado URI

Ao fazer um pedido contra o serviço de armazenamento emulsionado, especifique o nome de anfitrião emulador e a porta de serviço Blob como 127.0.0.1:10000 , seguido do nome da conta de armazenamento emulada:

PUT Método Request URI Versão HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Para obter mais informações, consulte a Utilização do Armazenamento Emulator Azure para Desenvolvimento e Testes.

Parâmetros do URI

Parâmetro Descrição
blockid Obrigatório. Um valor de cadeia Base64 válido que identifica o bloco. Antes da codificação, a corda deve ter um tamanho inferior ou igual a 64 bytes.

Para uma determinada bolha, o comprimento do valor especificado para o blockid parâmetro deve ter o mesmo tamanho para cada bloco.

Note que a cadeia Base64 deve estar codificada por URL.
timeout Opcional. O timeout parâmetro é expresso em segundos. Para obter mais informações, consulte os intervalos de definição para operações de serviço de blob.

Pedido cabeçalhos

A tabela seguinte descreve os cabeçalhos de pedido necessários e opcionais.

Cabeçalho do Pedido Description
Authorization Obrigatório. Especifica o esquema de autorização, nome da conta e assinatura. Consulte os pedidos autorizados à Azure Armazenamento para obter mais informações.
Date ou x-ms-date Obrigatório. Especifica a Hora Universal Coordenada (UTC) do pedido. Para mais informações, consulte Os pedidos autorizados à Azure Armazenamento.
x-ms-version Requerido para todos os pedidos autorizados. Especifica a versão da operação a utilizar para este pedido. Para mais informações, consulte a versão para os Serviços Azure Armazenamento. Para colocar bloco de URL, a versão tem que ser 2018-03-28 ou mais recente.
Content-Length Obrigatório. Especifica o número de bytes transmitidos no organismo de pedido. O valor deste cabeçalho deve ser definido para zero. Quando o comprimento não for zero, a operação falhará com o código de estado 400 (Mau Pedido).
x-ms-copy-source:name Obrigatório. Especifica o URL da bolha de origem. O valor pode ser um URL de até 2 KiB de comprimento que especifica uma bolha. O valor deve ser codificado por URL, tal como constaria num pedido URI. A bolha de origem deve ser pública ou deve ser autorizada através de uma assinatura de acesso partilhado. Se a bolha de origem for pública, não é necessária autorização para a realização da operação. Aqui estão alguns exemplos de URLs de objeto de origem:

- https://myaccount.blob.core.windows.net/mycontainer/myblob
- https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
- https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime>
x-ms-copy-source-authorization: <scheme> <signature> Opcional. Especifica o sistema de autorização e a assinatura para a fonte de cópia. Para mais informações, consulte Os pedidos autorizados à Azure Armazenamento.
Apenas o portador do regime é apoiado para Azure Ative Directory.
Este cabeçalho é suportado nas versões 2020-10-02 e posteriormente.
x-ms-source-range Opcional. Carrega apenas os bytes da bolha no URL de origem na gama especificada. Se isto não for especificado, todo o conteúdo da bolha de origem é carregado como um único bloco. Consulte especificar o cabeçalho de alcance para operações de serviço blob para obter mais informações.
x-ms-source-content-md5 Opcional. Um haxixe MD5 do conteúdo do bloco do URI. Este haxixe é utilizado para verificar a integridade do bloco durante o transporte dos dados do URI. Quando este cabeçalho é especificado, o serviço de armazenamento compara o haxixe do conteúdo que chegou da fonte de cópia com este valor do cabeçalho.

Note que este haxixe md5 não está armazenado com a bolha.

Se os dois hashes não coincidirem, a operação falhará com o código de erro 400 (Mau Pedido).
x-ms-source-content-crc64 Opcional. Um haxixe CRC64 do conteúdo do bloco do URI. Este haxixe é utilizado para verificar a integridade do bloco durante o transporte dos dados do URI. Quando este cabeçalho é especificado, o serviço de armazenamento compara o haxixe do conteúdo que chegou da fonte de cópia com este valor do cabeçalho.

Note que este haxixe CRC64 não é armazenado com a bolha.

Se os dois hashes não coincidirem, a operação falhará com o código de erro 400 (Mau Pedido).

Se ambos x-ms-source-content-md5 e x-ms-source-content-crc64 cabeçalhos estiverem presentes, o pedido falhará com um 400 (Mau Pedido).

Este cabeçalho é suportado nas versões 2019-02-02 ou posterior.
x-ms-encryption-scope Opcional. Indica o âmbito de encriptação a utilizar para encriptar o conteúdo da origem. Este cabeçalho é suportado nas versões 2019-02-02 ou posterior.
x-ms-lease-id:<ID> Necessário se a bolha tiver um arrendamento ativo. Para realizar esta operação numa bolha com um arrendamento ativo, especifique o ID de locação válido para este cabeçalho.
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres de 1 KiB que é gravado nos registos de análise quando o registo de análise de armazenamento está ativado. Recomenda-se a utilização deste cabeçalho para correlacionar as atividades do lado do cliente com os pedidos recebidos pelo servidor. Para obter mais informações, consulte Sobre Armazenamento Analítica registação e registo de registos Azure: Utilização de Registos para rastrear pedidos de Armazenamento.

Pedido cabeçalhos (chaves de encriptação fornecidas pelo cliente)

Começando pela versão 2019-02-02, os seguintes cabeçalhos podem ser especificados no pedido de encriptação de uma bolha com uma chave fornecida pelo cliente. A encriptação com uma chave fornecida pelo cliente (e o conjunto correspondente de cabeçalhos) é opcional.

Cabeçalho do pedido Descrição
x-ms-encryption-key Obrigatório. A chave de encriptação AES-256 codificada pela Base64.
x-ms-encryption-key-sha256 Obrigatório. O hash SHA256 codificado pela Base64 da chave de encriptação.
x-ms-encryption-algorithm: AES256 Obrigatório. Especifica o algoritmo a utilizar para encriptação. O valor deste cabeçalho deve ser AES256 .

Corpo do Pedido

Nenhum corpo de pedido.

Pedido de Amostra

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: 2018-03-28  
x-ms-date: Sat, 31 Mar 2018 14:37:35 GMT    
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 0
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-499

Resposta

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

Código de Estado

Uma operação bem sucedida devolve o código de estado 201 (Criado).

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

Cabeçalhos de Resposta

A resposta para esta operação inclui os seguintes cabeçalhos. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos standard estão em conformidade com a especificação do protocolo HTTP/1.1.

Cabeçalho de resposta Descrição
Content-MD5 Este cabeçalho é devolvido para que o cliente possa verificar a integridade do conteúdo da mensagem. O valor deste cabeçalho é calculado pelo serviço Blob; não é necessariamente o mesmo valor especificado nos cabeçalhos de pedido. Para as versões 2019-02-02 ou posterior, este cabeçalho só é devolvido quando o pedido tiver este cabeçalho.
x-ms-content-crc64 Para versões 2019-02-02 ou posterior, este cabeçalho é devolvido para que o cliente possa verificar a integridade do conteúdo da mensagem. O valor deste cabeçalho é calculado pelo serviço Blob; não é necessariamente o mesmo valor especificado nos cabeçalhos de pedido.

Este cabeçalho é devolvido quando x-ms-source-content-md5 o cabeçalho não está presente no pedido.
x-ms-request-id Este cabeçalho identifica exclusivamente o pedido que foi feito e pode ser usado para resolver problemas no pedido. Para obter mais informações, consulte operações de API de resolução de problemas.
x-ms-version Indica a versão do serviço Blob utilizado para executar o pedido.
Date Uma data/valor de hora UTC gerado pelo serviço que indica o momento em que a resposta foi iniciada.
x-ms-request-server-encrypted: true/false Versão 2015-12-11 ou mais recente. O valor deste cabeçalho é definido para true se o conteúdo do bloco for encriptado com sucesso usando o algoritmo especificado, e de outra false forma.
x-ms-encryption-key-sha256 Versão 2019-02-02 ou mais recente. Este cabeçalho é devolvido se o pedido utilizar uma chave fornecida pelo cliente para encriptação, para que o cliente possa garantir que o conteúdo do pedido seja encriptado com sucesso usando a chave fornecida.
x-ms-encryption-scope Versão 2019-02-02 ou mais recente. Este cabeçalho é devolvido se o pedido for utilizado num âmbito de encriptação, para que o cliente possa garantir que o conteúdo do pedido seja encriptado com sucesso utilizando o âmbito de encriptação.
x-ms-client-request-id Este cabeçalho pode ser usado para resolver pedidos e respostas correspondentes. O valor deste cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho se estiver presente no pedido e o valor for no máximo 1024 caracteres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente no pedido, este cabeçalho não estará presente na resposta.

Resposta de Amostra

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sat, 31 Mar 2018 23:47:09 GMT  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Autorização

Esta operação pode ser chamada pelo proprietário da conta e por qualquer pessoa com uma Assinatura de Acesso Partilhado que tenha permissão para escrever a esta bolha ou ao seu recipiente.

Observações

Put Block From URL carrega um bloco para futura inclusão em uma bolha de bloco. Uma bolha de bloco pode incluir um máximo de 50.000 blocos. Cada bloco pode ter um tamanho diferente. O tamanho máximo para um bloco carregado é Put Block From URL de 100 MiB. Para carregar blocos maiores (até 4000 MiB), consulte Put Block.

Na versão 2020-10-02 e mais recente, Azure Ative Directory autorização é suportada para a origem da operação de cópia.

Uma bolha pode ter um máximo de 100.000 blocos não comprometidos em qualquer momento. Se este máximo for ultrapassado, o código de estado de retorna de serviço 409 (RequestEntityTooLargeBlockCountExceedsLimit).

A tabela seguinte descreve os tamanhos máximos de bloco e bolha permitidos pela versão de serviço.

Versão de serviço Tamanho máximo do bloco (via Put Block from URL) Tamanho máximo do blob (via Put Block List) Tamanho máximo do blob através de uma única operação de escrita (via Put Blob de URL)
Versão 2020-04-08 e mais tarde 4000 MiB Aproximadamente 190.7 TiB (4000 MiB X 50.000 blocos) 5000 MiB (pré-visualização)
Versões antes de 2020-04-08 100 MiB Aproximadamente 4.75 TiB (100 MiB X 50.000 blocos) 256 MiB

Depois de ter carregado um conjunto de blocos, pode criar ou atualizar a bolha no servidor a partir deste conjunto, chamando a operação 'Lista de Blocos' de Put. Cada bloco no conjunto é identificado por um ID de bloco que é único dentro dessa bolha. Os IDs do bloco são traçados para uma bolha em particular, para que bolhas diferentes possam ter blocos com os mesmos IDs.

Se você chamar Put Block From URL uma bolha que ainda não existe, uma nova bolha de bloco é criada com um comprimento de conteúdo de 0. Esta bolha é enumerada pela List Blobs operação se a include=uncommittedblobs opção for especificada. O bloco ou blocos que fez o upload não são cometidos até que ligue Put Block List para a nova bolha. Uma bolha criada desta forma é mantida no servidor durante uma semana; se não tiver adicionado mais blocos ou blocos comprometidos à bolha dentro desse período de tempo, então a bolha é lixo recolhido.

Um bloco que foi carregado com sucesso com a Put Block From URL operação não faz parte de uma bolha até que seja comprometido com Put Block List . Antes Put Block List é chamado para cometer o novo ou atualizado blob, quaisquer chamadas para Obter Blob devolvam o conteúdo blob sem a inclusão do bloco não comprometido.

Se carregar um bloco que tenha o mesmo ID do bloco que outro bloco que ainda não foi comprometido, o último bloco carregado com esse ID será comprometido na próxima operação bem Put Block List sucedida.

Depois de Put Block List ser chamado, todos os blocos não comprometidos especificados na lista de blocos são cometidos como parte da nova bolha. Quaisquer blocos não autorizados que não foram especificados na lista de blocos para a bolha serão recolhidos e removidos do serviço Blob. Quaisquer blocos não comprometidos também serão recolhidos lixo se não houver chamadas bem sucedidas para Put Block From URL ou na mesma bolha no prazo de uma semana após a última Put Block List operação bem Put Block From URL sucedida. Se o Put Blob for chamado à bolha, quaisquer blocos não comprometidos serão recolhidos lixo.

Se a bolha tiver um contrato de arrendamento ativo, o cliente deve especificar uma identificação de locação válida no pedido para escrever um bloco para a bolha. Se o cliente não especificar um ID de locação ou especificar um ID de locação inválido, o código de estado do serviço Blob 412 (Pré-condição Falhada). Se o cliente especificar um ID de locação mas a bolha não tiver um arrendamento ativo, o serviço Blob também devolve o código de estado 412 (Pré-condição Falhada).

Para uma determinada bolha, todos os IDs de bloco devem ter o mesmo comprimento. Se um bloco for carregado com um ID de bloco de comprimento diferente dos IDs do bloco para quaisquer blocos não comprometidos existentes, o serviço devolve o código de resposta de erro 400 (Mau pedido).

A chamada Put Block From URL não atualiza o último tempo modificado de uma bolha existente.

Chamar Put Block From URL uma bolha de página retorna um erro.

Chamar Put Block From URL uma bolha arquivada devolverá um erro e na bolha não altera o Hot / Cool nível do blob.

Consulte também