Put Block ListPut Block List

A operação Put Block List grava um blob especificando a lista de IDs de bloco que constituem o blob.The Put Block List operation writes a blob by specifying the list of block IDs that make up the blob. Para ser gravado como parte de um blob, um bloco deve ter sido gravado com êxito no servidor em uma operação de bloqueio Put anterior.In order to be written as part of a blob, a block must have been successfully written to the server in a prior Put Block operation.

Você pode chamar Put Block List para atualizar um blob carregando apenas os blocos que foram alterados e depois confirmando os blocos novos e existentes em conjunto.You can call Put Block List to update a blob by uploading only those blocks that have changed, then committing the new and existing blocks together. Para fazer isso, especifique se um bloco deve ser confirmado da lista de blocos confirmados ou da lista de blocos não confirmados, ou confirme a versão mais recente carregada do bloco, independentemente da lista à qual ele pertença.You can do this by specifying whether to commit a block from the committed block list or from the uncommitted block list, or to commit the most recently uploaded version of the block, whichever list it may belong to.

SolicitaçãoRequest

A solicitação Put Block List pode ser criada da seguinte maneira.The Put Block List request may be constructed as follows. HTTPS é recomendado.HTTPS is recommended. Substitua myaccount pelo nome da sua conta de armazenamento:Replace myaccount with the name of your storage account:

URI de solicitação do método PUTPUT Method Request URI Versão de HTTPHTTP Version
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist HTTP/1.1HTTP/1.1

URI de serviço de armazenamento emuladoEmulated Storage Service URI

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:When making a request against the emulated storage service, specify the emulator hostname and Blob service port as 127.0.0.1:10000, followed by the emulated storage account name:

URI de solicitação do método PUTPUT Method Request URI Versão de HTTPHTTP Version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist HTTP/1.1HTTP/1.1

Observe que o emulador de armazenamento dá suporte apenas a tamanhos de blob de até 2 GiB.Note that the storage emulator only supports blob sizes up to 2 GiB.

Para obter mais informações, consulte usando o emulador de armazenamento do Azure para desenvolvimento e teste.For more information, see Using the Azure Storage Emulator for Development and Testing.

Parâmetros de URIURI Parameters

Os seguintes parâmetros adicionais podem ser especificados no URI de solicitação.The following additional parameters may be specified on the request URI.

ParâmetroParameter DescriçãoDescription
timeout Opcional.Optional. O parâmetro timeout é expresso em segundos.The timeout parameter is expressed in seconds. Para obter mais informações, consulte definindo tempos limite para operações do serviço blob.For more information, see Setting Timeouts for Blob Service Operations.

Cabeçalhos de solicitaçãoRequest Headers

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais.The following table describes required and optional request headers.

Cabeçalho da solicitaçãoRequest Header DescriçãoDescription
Authorization Obrigatórios.Required. Especifica o esquema de autorização, o nome da conta e a assinatura.Specifies the authorization scheme, account name, and signature. Para obter mais informações, consulte autorizar solicitações ao armazenamento do Azure.For more information, see Authorize requests to Azure Storage.
Date ou x-ms-dateDate or x-ms-date Obrigatórios.Required. Especifica o UTC (Tempo Universal Coordenado) para a solicitação.Specifies the Coordinated Universal Time (UTC) for the request. Para obter mais informações, consulte autorizar solicitações ao armazenamento do Azure.For more information, see Authorize requests to Azure Storage.
x-ms-version Necessário para todas as solicitações autorizadas.Required for all authorized requests. Especifica a versão da operação a ser usada para esta solicitação.Specifies the version of the operation to use for this request. Para obter mais informações, consulte controle de versão para os serviços de armazenamento do Azure.For more information, see Versioning for the Azure Storage Services.
Content-Length Obrigatórios.Required. O comprimento do conteúdo da solicitação em bytes.The length of the request content in bytes. Observe que esse cabeçalho se refere ao comprimento do conteúdo da lista de blocos, não do próprio blob.Note that this header refers to the content length of the list of blocks, not of the blob itself.
Content-MD5 Opcional.Optional. Um hash MD5 do conteúdo da solicitação.An MD5 hash of the request content. O hash é usado para verificar a integridade do conteúdo da solicitação durante o transporte.This hash is used to verify the integrity of the request content during transport. Se os dois hashes não corresponderem, a operação falhará com o código de erro 400 (Solicitação Incorreta).If the two hashes do not match, the operation will fail with error code 400 (Bad Request).

Observe que esse cabeçalho está associado ao conteúdo da solicitação, e não ao conteúdo do próprio blob.Note that this header is associated with the request content, and not with the content of the blob itself.
x-ms-content-crc64 Opcional.Optional. Um hash crc64 do conteúdo da solicitação.An crc64 hash of the request content. O hash é usado para verificar a integridade do conteúdo da solicitação durante o transporte.This hash is used to verify the integrity of the request content during transport. Se os dois hashes não corresponderem, a operação falhará com o código de erro 400 (Solicitação Incorreta).If the two hashes do not match, the operation will fail with error code 400 (Bad Request).

Observe que esse cabeçalho está associado ao conteúdo da solicitação, e não ao conteúdo do próprio blob.Note that this header is associated with the request content, and not with the content of the blob itself.

Se os cabeçalhos Content-MD5 e x-MS-Content-crc64 estiverem presentes, a solicitação falhará com um 400 (solicitação inadequada).If both Content-MD5 and x-ms-content-crc64 headers are present, the request will fail with a 400 (Bad Request).

Esse cabeçalho tem suporte no versions2019-02-02 ou posterior.This header is supported in versions2019-02-02 or later.
x-ms-blob-cache-control Opcional.Optional. Define o controle de cache do blob.Sets the blob’s cache control. Se especificada, essa propriedade será armazenada com o blob e retornada com uma solicitação de leitura.If specified, this property is stored with the blob and returned with a read request.

Se essa propriedade não for especificada com a solicitação, será apagada para o blob se a solicitação for bem-sucedida.If this property is not specified with the request, then it is cleared for the blob if the request is successful.
x-ms-blob-content-type Opcional.Optional. Define o tipo de conteúdo do blob.Sets the blob’s content type. Se especificada, essa propriedade será armazenada com o blob e retornada com uma solicitação de leitura.If specified, this property is stored with the blob and returned with a read request.

Se o tipo de conteúdo não for especificado, será definido como o tipo padrão, que é application/octet-stream.If the content type is not specified, then it is set to the default type, which is application/octet-stream.
x-ms-blob-content-encoding Opcional.Optional. Define a codificação do conteúdo do blob.Sets the blob’s content encoding. Se especificada, essa propriedade será armazenada com o blob e retornada com uma solicitação de leitura.If specified, this property is stored with the blob and returned with a read request.

Se essa propriedade não for especificada com a solicitação, será apagada para o blob se a solicitação for bem-sucedida.If this property is not specified with the request, then it is cleared for the blob if the request is successful.
x-ms-blob-content-language Opcional.Optional. Defina o idioma do conteúdo do blob.Set the blob’s content language. Se especificada, essa propriedade será armazenada com o blob e retornada com uma solicitação de leitura.If specified, this property is stored with the blob and returned with a read request.

essa propriedade não for especificada com a solicitação, será apagada para o blob se a solicitação for bem-sucedida.this property is not specified with the request, then it is cleared for the blob if the request is successful.
x-ms-blob-content-md5 Opcional.Optional. Um hash MD5 do conteúdo do blob.An MD5 hash of the blob content. Observe que esse hash não está validado, pois os hashes dos blocos individuais foram validados quando cada um deles foi carregado.Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.

A operação obter blob retorna o valor desse cabeçalho no cabeçalho de resposta Content-MD5.The Get Blob operation returns the value of this header in the Content-MD5 response header.

Se essa propriedade não for especificada com a solicitação, será apagada para o blob se a solicitação for bem-sucedida.If this property is not specified with the request, then it is cleared for the blob if the request is successful.
x-ms-meta-name:value Opcional.Optional. Pares de nome-valor definidos pelo usuário associados ao blob.User-defined name-value pairs associated with the blob.

Observe que, a partir da versão 2009-09-19, os nomes de metadados devem aderir às regras de nomenclatura para identificadores C#.Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers.
x-ms-encryption-scope Opcional.Optional. Indica o escopo de criptografia a ser usado para criptografar o blob.Indicates the encryption scope to use to encrypt the blob. Isso deve corresponder ao escopo de criptografia usado para criptografar todos os blocos que estão sendo confirmados.This must match the encryption scope used to encrypt all the blocks that are being committed. Esse cabeçalho tem suporte nas versões 2019-02-02 ou posteriores.This header is supported in versions 2019-02-02 or later.
x-ms-tags Opcional.Optional. Define as marcas codificadas da cadeia de caracteres de consulta no BLOB.Sets the given query-string encoded tags on the blob. Consulte os comentários para obter informações adicionais.See the Remarks for additional information. Com suporte na versão 2019-12-12 e mais recente.Supported in version 2019-12-12 and newer.
x-ms-lease-id:<ID> Obrigatório se o blob tiver uma concessão ativa.Required if the blob has an active lease. 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.To perform this operation on a blob with an active lease, specify the valid lease ID for this header.
x-ms-client-request-id Opcional.Optional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres de 1 KiB que é registrado nos logs de análise quando o log da análise de armazenamento está habilitado.Provides a client-generated, opaque value with a 1 KiB character limit that is recorded in the analytics logs when storage analytics logging is enabled. O uso desse cabeçalho é altamente recomendável para correlacionar as atividades do lado do cliente com as solicitações recebidas pelo servidor.Using this header is highly recommended for correlating client-side activities with requests received by the server. Para obter mais informações, consulte sobre log de análise de armazenamento e log do Azure: usando logs para rastrear solicitações de armazenamento.For more information, see About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests.
x-ms-blob-content-disposition Opcional.Optional. Define o cabeçalho Content-Disposition do blob.Sets the blob’s Content-Disposition header. Disponível para versões 2013-08-15 e posteriores.Available for versions 2013-08-15 and later.

O Content-Disposition campo de cabeçalho transmite informações adicionais sobre como processar a carga de resposta e também pode ser usado para anexar metadados adicionais.The Content-Disposition header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. Por exemplo, se for definido como attachment, indica que o agente de usuário não deve exibir a resposta, mas em vez disos mostra uma caixa de diálogo Salvar como.For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog.

A resposta das operações obter blob e obter propriedades de blob inclui o cabeçalho de disposição de conteúdo.The response from the Get Blob and Get Blob Properties operations includes the content-disposition header.
x-ms-access-tier Opcional.Optional. Versão 2018-11-09 e mais recente.Version 2018-11-09 and newer. Indica a camada a ser definida em um blob.Indicates the tier to be set on a blob. Para BLOBs de blocos, com suporte no armazenamento de BLOBs ou contas de uso geral v2 somente com a versão 2018-11-09 e mais recente.For block blobs, supported on blob storage or general purpose v2 accounts only with version 2018-11-09 and newer. Os valores válidos para as camadas de blob de bloco são Hot / Cool / Archive .Valid values for block blob tiers are Hot/Cool/Archive. Para obter informações detalhadas sobre camadas de blob de blocos, consulte camadas de armazenamento quentes, frias e de arquivo morto.For detailed information about block blob tiering see Hot, cool and archive storage tiers.

Essa operação também dará suporte ao uso de cabeçalhos condicionais para confirmar a lista de bloqueio somente se uma determinada condição for atendida.This operation also supports the use of conditional headers to commit the block list only if a specified condition is met. Para obter mais informações, confira Como especificar cabeçalhos condicionais para operações de serviço Blob.For more information, see Specifying Conditional Headers for Blob Service Operations.

Cabeçalhos de solicitação (chaves de criptografia fornecidas pelo cliente)Request Headers (Customer-provided encryption keys)

A partir da versão 2019-02-02, os seguintes cabeçalhos podem ser especificados na solicitação para criptografar um blob com uma chave fornecida pelo cliente.Beginning with version 2019-02-02, the following headers may be specified on the request to encrypt a blob with a customer-provided key. A criptografia com uma chave fornecida pelo cliente (e o conjunto de cabeçalhos correspondente) é opcional.Encryption with a customer-provided key (and the corresponding set of headers) is optional.

Cabeçalho da solicitaçãoRequest header DescriçãoDescription
x-ms-encryption-key Obrigatórios.Required. A chave de criptografia AES-256 codificada em base64.The Base64-encoded AES-256 encryption key.
x-ms-encryption-key-sha256 Obrigatórios.Required. O hash SHA256 codificado em base64 da chave de criptografia.The Base64-encoded SHA256 hash of the encryption key.
x-ms-encryption-algorithm: AES256 Obrigatórios.Required. Especifica o algoritmo a ser usado para criptografia.Specifies the algorithm to use for encryption. O valor desse cabeçalho deve ser AES256 .The value of this header must be AES256.

Corpo da solicitaçãoRequest Body

No corpo da solicitação, você pode especificar em qual lista de blocos o serviço Blob deverá procurar o bloco solicitado.In the request body, you can specify which block list the Blob service should check for the requested block. Desse modo, você pode atualizar um blob existente inserindo, substituindo ou excluindo blocos individuais, em vez de recarregar todo o blob.In this way you can update an existing blob by inserting, replacing, or deleting individual blocks, rather than re-uploading the entire blob. Após o carregamento dos blocos que foram alterados, você poderá confirmar uma nova versão do blob ao confirmar os novos blocos em conjunto com os blocos existentes que deseja manter.Once you've uploaded the block or blocks that have changed, you can commit a new version of the blob by committing the new blocks together with the existing blocks that you wish to keep.

Para atualizar um blob, você pode especificar que o serviço deve procurar uma ID de bloco na lista de blocos confirmados, na lista de blocos não confirmados ou na lista de blocos não confirmados primeiro e depois na lista de blocos confirmados.To update a blob, you can specify that the service should look for a block ID in the committed block list, in the uncommitted block list, or in the uncommitted block list first and then in the committed block list. Para indicar o método a ser usado, especifique a ID do bloco dentro do elemento XML apropriado dentro do corpo da solicitação, da seguinte forma:To indicate which approach to use, specify the block ID within the appropriate XML element within the request body, as follows:

  • Especifique a ID do bloco no elemento Committed para indicar que o serviço Blob deve pesquisar somente a lista de blocos confirmados para o bloco indicado.Specify the block ID within the Committed element to indicate that the Blob service should search only the committed block list for the named block. Se o bloco não for encontrado na lista de blocos confirmados, ele não será gravado como parte do Blob, e o serviço Blob retornará o código de status 400 (Solicitação Incorreta).If the block is not found in the committed block list, it will not be written as part of the blob, and the Blob service will return status code 400 (Bad Request).

  • Especifique a ID do bloco no elemento Uncommitted para indicar que o serviço Blob deve pesquisar somente a lista de blocos não confirmados para o bloco indicado.Specify the block ID within the Uncommitted element to indicate that the Blob service should search only the uncommitted block list for the named block. Se o bloco não for encontrado na lista de blocos não confirmados, ele não será gravado como parte do Blob, e o serviço Blob retornará o código de status 400 (Solicitação Incorreta).If the block is not found in the uncommitted block list, it will not be written as part of the blob, and the Blob service will return status code 400 (Bad Request).

  • Especifique a ID do bloco no elemento Latest para indicar que o serviço Blob deve pesquisar primeiro a lista de blocos não confirmados.Specify the block ID within the Latest element to indicate that the Blob service should first search the uncommitted block list. Se o bloco for encontrado na lista de não confirmados, essa versão do bloco será a mais recente e deverá ser gravada no Blob.If the block is found in the uncommitted list, that version of the block is the latest and should be written to the blob. Se o bloco não for localizado na lista de não confirmados, o serviço deverá pesquisar a lista de blocos confirmados para o bloco indicado e gravar esse bloco no blob, se for encontrado.If the block is not found in the uncommitted list, then the service should search the committed block list for the named block and write that block to the blob if it is found.

O corpo da solicitação para essa versão do Put Block List usa o seguinte formato XML:The request body for this version of Put Block List uses following XML format:

<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <Committed>first-base64-encoded-block-id</Committed>  
  <Uncommitted>second-base64-encoded-block-id</Uncommitted>  
  <Latest>third-base64-encoded-block-id</Latest>  
  ...  
</BlockList>  
  

Solicitação de ExemploSample Request

Para demonstrar Put Block List, vamos supor que você carregou três blocos que agora deseja confirmar.To demonstrate Put Block List, assume you have uploaded three blocks that you now wish to commit. O exemplo a seguir confirma um novo blob indicando que a última versão de cada bloco listado deve ser usada.The following example commits a new blob by indicating that the latest version of each block listed should be used. Não é necessário saber se esses blocos já foram confirmados.It's not necessary to know whether these blocks have already been committed.

  
Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist HTTP/1.1  
  
Request Headers:  
x-ms-date: Wed, 31 Aug 2011 00:17:43 GMT  
x-ms-version: 2011-08-18  
Content-Type: text/plain; charset=UTF-8  
Authorization: SharedKey myaccount:DJ5QZSVONZ64vAhnN/wxcU+Pt5HQSLAiLITlAU76Lx8=  
Content-Length: 133  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <Latest>AAAAAA==</Latest>  
  <Latest>AQAAAA==</Latest>  
  <Latest>AZAAAA==</Latest>  
</BlockList>  
  

Em seguida, vamos supor que você queira atualizar o blob.Next, assume that you wish to update the blob. O novo blob terá as seguintes alterações:The new blob will have the following changes:

  • Um novo bloco com a ID ANAAAA==.A new block with ID ANAAAA==. Esse bloco deve primeiro ser carregado com uma chamada para Put Block e aparecerá na lista de blocos não confirmados até a chamada para Put Block List .This block must first be uploaded with a call to Put Block and will appear in the uncommitted block list until the call to Put Block List.

  • Uma versão atualizada do bloco com a ID AZAAAA==.An updated version of the block with ID AZAAAA==. Esse bloco deve primeiro ser carregado com uma chamada para Put Block e aparecerá na lista de blocos não confirmados até a chamada para Put Block List .This block must first be uploaded with a call to Put Block and will appear in the uncommitted block list until the call to Put Block List.

  • Remoção do bloco com a ID AAAAAA==.Removal of the block with the ID AAAAAA==. Considerando que esse bloco não está incluído na próxima chamada para Put Block List, o bloco será efetivamente removido do blob.Given that this block is not included in the next call to Put Block List, the block will effectively be removed from the blob.

O exemplo a seguir mostra a chamada para Put Block List que atualiza o blob:The following example shows the call to Put Block List that updates the blob:

  
Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist HTTP/1.1  
  
Request Headers:  
x-ms-date: Wed, 31 Aug 2009 00:17:43 GMT  
x-ms-version: 2011-08-18  
Content-Type: text/plain; charset=UTF-8  
Authorization: SharedKey myaccount:DJ5QZSVONZ64vAhnN/wxcU+Pt5HQSLAiLITlAU76Lx8=  
Content-Length: 133  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <Uncommitted>ANAAAA==</Uncommitted>  
  <Committed>AQAAAA==</Committed>  
  <Uncommitted>AZAAAA==</Uncommitted>  
</BlockList>  
  

RespostaResponse

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.The response includes an HTTP status code and a set of response headers.

Código de statusStatus Code

Uma operação bem-sucedida retorna o código de status 201 (Criado).A successful operation returns status code 201 (Created).

Para obter informações sobre códigos de status, consulte status e códigos de erro.For information about status codes, see Status and Error Codes.

Cabeçalhos de respostaResponse Headers

A resposta para esta operação inclui os cabeçalhos a seguir.The response for this operation includes the following headers. A resposta também pode incluir cabeçalhos padrão HTTP adicionais.The response may also include additional standard HTTP headers. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.All standard headers conform to the HTTP/1.1 protocol specification.

RespostaResponse DescriçõesDescriptions
ETag A marca de entidade contém um valor que o cliente pode usar para executar operações GET/PUT condicionais usando o cabeçalho de solicitação If-Match.The entity tag contains a value that the client can use to perform conditional GET/PUT operations by using the If-Match request header. Se a versão da solicitação for a 2011-08-18 ou mais recente, o valor de ETag será exibido entre aspas.If the request version is 2011-08-18 or newer, the ETag value will be in quotes.
Last-Modified A data e a hora da última modificação feita no blob.The date/time that the blob was last modified. O formato da data segue RFC 1123.The date format follows RFC 1123. Para obter mais informações, consulte representação de valores de data e hora em cabeçalhos.For more information, see Representation of Date-Time Values in Headers.

Qualquer operação que modificar o blob, incluindo uma atualização dos metadados ou das propriedades do blob, alterará a hora da última modificação do blob.Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last modified time of the blob.
Content-MD5 Esse cabeçalho é retornado para que o cliente possa verificar a integridade do conteúdo da mensagem.This header is returned so that the client can check for message content integrity. Esse cabeçalho se refere ao conteúdo da solicitação, ou seja, nesse caso, a lista de blocos, e não ao conteúdo do próprio blob.This header refers to the content of the request, meaning, in this case, the list of blocks, and not the content of the blob itself. Para versions2019-02-02 ou posterior, esse cabeçalho só é retornado quando a solicitação tem esse cabeçalho.For versions2019-02-02 or later, This header is only returned when the request has this header.
x-ms-content-crc64 Para as versões 2019-02-02 e posteriores, esse cabeçalho é retornado para que o cliente possa verificar a integridade do conteúdo da mensagem.For versions 2019-02-02 and later, this header is returned so that the client can check for message content integrity. Esse cabeçalho se refere ao conteúdo da solicitação, ou seja, nesse caso, a lista de blocos, e não ao conteúdo do próprio blob.This header refers to the content of the request, meaning, in this case, the list of blocks, and not the content of the blob itself.

Esse cabeçalho é retornado quando Content-md5 o cabeçalho não está presente na solicitação.This header is returned when Content-md5 header is not present in the request.
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.This header uniquely identifies the request that was made and can be used for troubleshooting the request. Para obter mais informações, consulte Solucionando problemas de operações de API.For more information, see Troubleshooting API Operations.
x-ms-version Indica a versão do serviço Blob usado para executar a solicitação.Indicates the version of the Blob service used to execute the request. Esse cabeçalho é retornado para solicitações feitas na versão 2009-09-19 e mais recente.This header is returned for requests made against version 2009-09-19 and later.
Date Um valor de data/hora UTC gerado pelo serviço que indica a hora em que a resposta foi iniciada.A UTC date/time value generated by the service that indicates the time at which the response was initiated.
x-ms-request-server-encrypted: true/false Versão 2015-12-11 ou mais recente.Version 2015-12-11 or newer. O valor desse cabeçalho será definido como true se o conteúdo da solicitação for criptografado com êxito usando o algoritmo especificado e, false caso contrário,.The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise.
x-ms-encryption-key-sha256 Versão 2019-02-02 ou mais recente.Version 2019-02-02 or newer. Esse cabeçalho é retornado se a solicitação usou uma chave fornecida pelo cliente para criptografia, para que o cliente possa garantir que o conteúdo da solicitação seja criptografado com êxito usando a chave fornecida.This header is returned if the request used a customer-provided key for encryption, so the client can ensure the contents of the request are successfully encrypted using the provided key.
x-ms-encryption-scope Versão 2019-02-02 ou mais recente.Version 2019-02-02 or newer. Esse cabeçalho é retornado se a solicitação usou um escopo de criptografia, para que o cliente possa garantir que o conteúdo da solicitação seja criptografado com êxito usando o escopo de criptografia.This header is returned if the request used an encryption scope, so the client can ensure the contents of the request are successfully encrypted using the encryption scope.
x-ms-version-id: <DateTime> Versão 2019-12-12 e mais recente.Version 2019-12-12 and newer. Esse cabeçalho retorna um DateTime valor opaco que identifica exclusivamente o blob.This header returns an opaque DateTime value that uniquely identifies the blob. O valor desse cabeçalho indica a versão do blob e pode ser usado em solicitações subsequentes para acessar o blob.The value of this header indicates the version of the blob, and may be used in subsequent requests to access the blob.
x-ms-client-request-id Esse cabeçalho pode ser usado para solucionar problemas de solicitações e respostas correspondentes.This header can be used to troubleshoot requests and corresponding responses. O valor desse cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho se estiver presente na solicitação e o valor for de no máximo 1024 caracteres ASCII visíveis.The value of this header is equal to the value of the x-ms-client-request-id header if it is present in the request and the value is at most 1024 visible ASCII characters. Se o x-ms-client-request-id cabeçalho não estiver presente na solicitação, esse cabeçalho não estará presente na resposta.If the x-ms-client-request-id header is not present in the request, this header will not be present in the response.

Exemplo de RespostaSample Response

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sun, 25 Sep 2011 00:17:44 GMT  
ETag: “0x8CB172A360EC34B”  
Last-Modified: Sun, 25 Sep 2011 00:17:43 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-version-id: <DateTime>  

AutorizaçãoAuthorization

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.This operation can be called by the account owner and by anyone with a Shared Access Signature that has permission to write to this blob or its container.

Se uma solicitação especificar marcas com o x-ms-tags cabeçalho da solicitação, o chamador deverá atender aos requisitos de autorização da operação definir marcas de blob .If a request specifies tags with the x-ms-tags request header, the caller must meet the authorization requirements of the Set Blob Tags operation.

ComentáriosRemarks

A operação Put Block List impõe a ordem em que os blocos deverão ser combinados para criar um blob.The Put Block List operation enforces the order in which blocks are to be combined to create a blob.

A mesma ID de bloco pode ser especificada mais de uma vez na lista de blocos.The same block ID can be specified more than one time in the list of blocks. Se uma ID de bloco for especificada mais de uma vez, isso representará o intervalo de bytes em cada um desses locais na lista de blocos do blob confirmado final.If a block ID is specified more than one time, it will represent the range of bytes in each of those locations in the block list for the final committed blob. Se uma ID de bloco aparecer mais de uma vez na lista, ambas as instâncias da ID do bloco deverão ser especificadas na mesma lista de blocos.If a block ID appears more than once in the list, both instances of the block ID must be specified within the same block list. Ou seja ambas as instâncias devem ser especificadas nos elementos Committed, Uncommitted ou Latest.In other words, both instances must be specified within the Committed element, the Uncommitted element, or the Latest element.

Com Put Block List, você pode modificar um blob existente, inserindo, atualizando ou excluindo blocos individuais, sem carregar o blob inteiro novamente.With Put Block List, you can modify an existing blob by inserting, updating, or deleting individual blocks, without uploading the whole blob again. Você pode especificar IDs do bloco da lista de contatos bloqueados confirmada atual e da lista de blocos não confirmados para criar um novo blob ou para atualizar o conteúdo de um blob existente.You can specify block IDs from both the current committed block list and the uncommitted block list to create a new blob or update the content of an existing blob. Desse modo você pode atualizar um blob especificando alguns novos blocos da lista de blocos não confirmados, e o restante da lista de contatos bloqueados confirmada, que já fazem parte do blob existente.In this way you can update a blob by specifying a few new blocks from the uncommitted block list, and the rest from the committed block list, which are already part of the existing blob.

Se uma ID de bloco for especificado no elemento Latest, e a mesma ID do bloco existir em listas de contatos bloqueados confirmadas e não confirmadas, Put Block List confirmará o bloco da lista de blocos não confirmados.If a block ID is specified in the Latest element, and the same block ID exists in both the committed and uncommitted block lists, Put Block List commits the block from the uncommitted block list. Se a ID do bloco existir na lista de blocos confirmados, mas não na lista de blocos não confirmados, então Put Block List confirmará o bloco da lista de blocos confirmados.If the block ID exists in the committed block list but not in the uncommitted block list, then Put Block List commits the block from the committed block list.

Cada bloco pode ter um tamanho diferente, até um máximo de 4000 MiB para a versão 2019-12-12 e posterior (visualização), 100 MiB para a versão 2016-05-31 e posterior e 4 MiB para versões mais antigas.Each block can be a different size, up to a maximum of 4000 MiB for version 2019-12-12 and later (Preview), 100 MiB for version 2016-05-31 and later, and 4 MiB for older versions. O tamanho máximo de um blob de blocos é, portanto, 190,7 TiB (4000 MiB X 50.000 Blocks) para a versão 2019-12-12 e posterior (visualização), 4,75 TiB (100 blocos MiB X 50.000) para a versão 2016-05-31 e posterior e 195 GiB (4 MiB X 50.000 blocos) para todas as versões mais antigas.The maximum size of a block blob is therefore 190.7 TiB (4000 MiB X 50,000 blocks) for version 2019-12-12 and later (Preview), 4.75 TiB (100 MiB X 50,000 blocks) for version 2016-05-31 and later, and 195 GiB (4 MiB X 50,000 blocks) for all older versions. Se você tentar confirmar mais de 50.000 blocos, o serviço retornará o código de status 400 (lista de bloqueios muito longa).If you attempt to commit more than 50,000 blocks, the service returns status code 400 (Block List Too Long). O serviço também retorna informações adicionais sobre o erro na resposta, inclusive o número máximo permitido de blocos.The service also returns additional information about the error in the response, including the maximum number of blocks permitted.

O número máximo de blocos não confirmados que podem ser associados a um blob é 100.000.The maximum number of uncommitted blocks that may be associated with a blob is 100,000.

Quando você chama Put Block List para atualizar um blob existente, as propriedades existentes e os metadados de blob são substituídos.When you call Put Block List to update an existing blob, the blob's existing properties and metadata are overwritten. No entanto, todos os instantâneos existentes são mantidos com o blob.However, any existing snapshots are retained with the blob. Você pode usar os cabeçalhos de solicitação condicionais para executar a operação somente se uma condição especificada for atendida.You can use the conditional request headers to perform the operation only if a specified condition is met.

Se a operação Put Block List falhar devido a um bloco ausente, você precisará carregar o bloco ausente.If the Put Block List operation fails due to a missing block, you will need to upload the missing block.

Todos os blocos não confirmados serão limpos se não houver nenhuma chamada bem-sucedida a Put Block ou a Put Block List no blob dentro de uma semana após a última operação Put Block bem-sucedida.Any uncommitted blocks will be garbage collected if there are no successful calls to Put Block or Put Block List on the blob within a week following the last successful Put Block operation. Se Put Blob for chamado no BLOB, os blocos não confirmados serão coletados como lixo.If Put Blob is called on the blob, any uncommitted blocks will be garbage collected.

Se as marcas forem fornecidas no x-ms-tags cabeçalho, elas deverão ser codificadas para cadeia de caracteres de consulta.If tags are provided in the x-ms-tags header, they must be query-string encoded. As chaves e os valores de marca devem estar de acordo com os requisitos de nomenclatura e comprimento conforme especificado em definir marcas de BLOB.Tag keys and values must conform to the naming and length requirements as specified in Set Blob Tags. Além disso, o x-ms-tags cabeçalho pode conter até 2 KB de marcas.Further, the x-ms-tags header may contain up to 2kb of tags. Se mais marcas forem necessárias, use a operação definir marcas de blob .If more tags are required, use the Set Blob Tags operation.

Se o blob tiver uma concessão ativa, o cliente deverá especificar uma ID de concessão válida para confirmar a lista de blocos.If the blob has an active lease, the client must specify a valid lease ID on the request in order to commit the block list. 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).If the client does not specify a lease ID, or specifies an invalid lease ID, the Blob service returns status code 412 (Precondition Failed). 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).If the client specifies a lease ID but the blob does not have an active lease, the Blob service also returns status code 412 (Precondition Failed). Se o cliente especificar um ID de concessão em um blob que ainda não existir, o serviço Blob retornará o código de status 412 (falha na pré-condição) para solicitações feitas na versão 2013-08-15 e posterior; para versões anteriores, o serviço Blob retornará o código de status 201 (criado).If the client specifies a lease ID on a blob that does not yet exist, the Blob service will return status code 412 (Precondition Failed) for requests made against version 2013-08-15 and later; for prior versions the Blob service will return status code 201 (Created).

Se o blob tiver uma concessão ativa e você chamar Put Block List para atualizar o blob, a concessão será é mantida no blob atualizado.If the blob has an active lease and you call Put Block List to update the blob, the lease is maintained on the updated blob.

Put Block List é aplicável apenas a blobs de bloco.Put Block List applies only to block blobs. A chamada de Put Block List em um blob de páginas resulta no código de status 400 (Solicitação Incorreta).Calling Put Block List on a page blob results in status code 400 (Bad Request).

Substituir um blob arquivado falhará e substituirá um hot / cool blob herdará a camada do blob antigo se o cabeçalho x-MS-Access-Tier não for fornecido.Overwriting an archived blob will fail and overwriting a hot/cool blob will inherit the tier from the old blob if x-ms-access-tier header is not provided.

Consulte TambémSee Also

Noções básicas sobre blobs de bloco, blobs de acréscimo e blobs de página Understanding Block Blobs, Append Blobs, and Page Blobs
Autorizar solicitações ao armazenamento do Azure Authorize requests to Azure Storage
Status e códigos de erro Status and Error Codes
Códigos de erro do serviço blob Blob Service Error Codes
Configurando os tempos limite para operações de serviço do BlobSetting Timeouts for Blob Service Operations