BlockBlobClient Classe

public final class BlockBlobClient
extends BlobClientBase

Cliente para um blob de blocos. Ele só pode ser instanciado por meio de um SpecializedBlobClientBuilder ou por meio do método getBlockBlobClient(). Essa classe não contém nenhum estado sobre um blob específico, mas é uma maneira conveniente de enviar solicitações apropriadas para o recurso no serviço.

Consulte o Azure Docs para obter mais informações.

Resumo do campo

Modificador e tipo Campo e descrição
static final int MAX_BLOCKS

Indica o número máximo de blocos permitidos em um blob de blocos.

static final int MAX_STAGE_BLOCK_BYTES

Preterido

Indica o número máximo de bytes que podem ser enviados em uma chamada para o bloco de estágio.

static final long MAX_STAGE_BLOCK_BYTES_LONG

Indica o número máximo de bytes que podem ser enviados em uma chamada para o bloco de estágio.

static final int MAX_UPLOAD_BLOB_BYTES

Preterido

Indica o número máximo de bytes que podem ser enviados em uma chamada para upload.

static final long MAX_UPLOAD_BLOB_BYTES_LONG

Indica o número máximo de bytes que podem ser enviados em uma chamada para upload.

Resumo do método

Modificador e tipo Método e descrição
BlockBlobItem commitBlockList(List<String> base64BlockIds)

Grava um blob especificando a lista de IDs de bloco que devem compõe o blob.

BlockBlobItem commitBlockList(List<String> base64BlockIds, boolean overwrite)

Grava um blob especificando a lista de IDs de bloco que devem compõe o blob.

Response<BlockBlobItem> commitBlockListWithResponse(BlockBlobCommitBlockListOptions options, Duration timeout, Context context)

Grava um blob especificando a lista de IDs de bloco que devem compõe o blob.

Response<BlockBlobItem> commitBlockListWithResponse(List<String> base64BlockIds, BlobHttpHeaders headers, Map<String,String> metadata, AccessTier tier, BlobRequestConditions requestConditions, Duration timeout, Context context)

Grava um blob especificando a lista de IDs de bloco que devem compõe o blob.

BlobOutputStream getBlobOutputStream()

Cria e abre um fluxo de saída para gravar dados no blob de blocos.

BlobOutputStream getBlobOutputStream(boolean overwrite)

Cria e abre um fluxo de saída para gravar dados no blob de blocos.

BlobOutputStream getBlobOutputStream(BlobRequestConditions requestConditions)

Cria e abre um fluxo de saída para gravar dados no blob de blocos.

BlobOutputStream getBlobOutputStream(ParallelTransferOptions parallelTransferOptions, BlobHttpHeaders headers, Map<String,String> metadata, AccessTier tier, BlobRequestConditions requestConditions)

Cria e abre um fluxo de saída para gravar dados no blob de blocos.

BlobOutputStream getBlobOutputStream(BlockBlobOutputStreamOptions options)

Cria e abre um fluxo de saída para gravar dados no blob de blocos.

BlobOutputStream getBlobOutputStream(BlockBlobOutputStreamOptions options, Context context)

Cria e abre um fluxo de saída para gravar dados no blob de blocos.

BlockBlobClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

Cria um novo BlockBlobClient com o customerProvidedKey especificado.

BlockBlobClient getEncryptionScopeClient(String encryptionScope)

Cria um novo BlockBlobClient com o encryptionScope especificado.

BlockList listBlocks(BlockListType listType)

Retorna a lista de blocos que foram carregados como parte de um blob de blocos usando o filtro de lista de blocos especificado.

Response<BlockList> listBlocksWithResponse(BlockListType listType, String leaseId, Duration timeout, Context context)

Retorna a lista de blocos que foram carregados como parte de um blob de blocos usando o filtro de lista de blocos especificado.

Response<BlockList> listBlocksWithResponse(BlockBlobListBlocksOptions options, Duration timeout, Context context)

Retorna a lista de blocos que foram carregados como parte de um blob de blocos usando o filtro de lista de blocos especificado.

SeekableByteChannel openSeekableByteChannelWrite(BlockBlobSeekableByteChannelWriteOptions options)

Abre um canal de bytes que pode ser buscado no modo somente gravação para carregar o blob.

void stageBlock(String base64BlockId, BinaryData data)

Carrega o bloco especificado na "área de preparo" do blob de blocos para ser confirmado posteriormente por uma chamada para confirmara Lista de Blocos.

void stageBlock(String base64BlockId, InputStream data, long length)

Carrega o bloco especificado na "área de preparo" do blob de blocos para ser confirmado posteriormente por uma chamada para confirmara Lista de Blocos.

void stageBlockFromUrl(String base64BlockId, String sourceUrl, BlobRange sourceRange)

Cria um novo bloco a ser confirmado como parte de um blob em que o conteúdo é lido de uma URL.

Response<Void> stageBlockFromUrlWithResponse(BlockBlobStageBlockFromUrlOptions options, Duration timeout, Context context)

Cria um novo bloco a ser confirmado como parte de um blob em que o conteúdo é lido de uma URL.

Response<Void> stageBlockFromUrlWithResponse(String base64BlockId, String sourceUrl, BlobRange sourceRange, byte[] sourceContentMd5, String leaseId, BlobRequestConditions sourceRequestConditions, Duration timeout, Context context)

Cria um novo bloco a ser confirmado como parte de um blob em que o conteúdo é lido de uma URL.

Response<Void> stageBlockWithResponse(BlockBlobStageBlockOptions options, Duration timeout, Context context)

Carrega o bloco especificado na "área de preparo" do blob de blocos para ser confirmado posteriormente por uma chamada para confirmara Lista de Blocos.

Response<Void> stageBlockWithResponse(String base64BlockId, InputStream data, long length, byte[] contentMd5, String leaseId, Duration timeout, Context context)

Carrega o bloco especificado na "área de preparo" do blob de blocos para ser confirmado posteriormente por uma chamada para confirmara Lista de Blocos.

BlockBlobItem upload(BinaryData data)

Cria um novo blob de blocos.

BlockBlobItem upload(BinaryData data, boolean overwrite)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente.

BlockBlobItem upload(InputStream data, long length)

Cria um novo blob de blocos.

BlockBlobItem upload(InputStream data, long length, boolean overwrite)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente.

BlockBlobItem uploadFromUrl(String sourceUrl)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente.

BlockBlobItem uploadFromUrl(String sourceUrl, boolean overwrite)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente.

Response<BlockBlobItem> uploadFromUrlWithResponse(BlobUploadFromUrlOptions options, Duration timeout, Context context)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente.

Response<BlockBlobItem> uploadWithResponse(BlockBlobSimpleUploadOptions options, Duration timeout, Context context)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente.

Response<BlockBlobItem> uploadWithResponse(InputStream data, long length, BlobHttpHeaders headers, Map<String,String> metadata, AccessTier tier, byte[] contentMd5, BlobRequestConditions requestConditions, Duration timeout, Context context)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente.

Métodos herdados de BlobClientBase

abortCopyFromUrl abortCopyFromUrlWithResponse beginCopy beginCopy beginCopy copyFromUrl copyFromUrlWithResponse copyFromUrlWithResponse createSnapshot createSnapshotWithResponse delete deleteIfExists deleteIfExistsWithResponse deleteImmutabilityPolicy deleteImmutabilityPolicyWithResponse deleteWithResponse download downloadContent downloadContentWithResponse downloadContentWithResponse downloadStream downloadStreamWithResponse downloadToFile downloadToFile downloadToFileWithResponse downloadToFileWithResponse downloadToFileWithResponse downloadWithResponse exists existsWithResponse generateSas generateSas generateUserDelegationSas generateUserDelegationSas getAccountInfo getAccountInfoWithResponse getAccountName getAccountUrl getBlobName getBlobUrl getContainerClient getContainerName getCustomerProvidedKey getCustomerProvidedKeyClient getEncryptionScope getEncryptionScopeClient getHttpPipeline getProperties getPropertiesWithResponse getServiceVersion getSnapshotClient getSnapshotId getTags getTagsWithResponse getVersionClient getVersionId isSnapshot openInputStream openInputStream openInputStream openInputStream openQueryInputStream openQueryInputStreamWithResponse openSeekableByteChannelRead query queryWithResponse setAccessTier setAccessTierWithResponse setAccessTierWithResponse setHttpHeaders setHttpHeadersWithResponse setImmutabilityPolicy setImmutabilityPolicyWithResponse setLegalHold setLegalHoldWithResponse setMetadata setMetadataWithResponse setTags setTagsWithResponse undelete undeleteWithResponse

Métodos herdados de java.lang.Object

Detalhes do campo

MAX_BLOCKS

public static final int MAX_BLOCKS

Indica o número máximo de blocos permitidos em um blob de blocos.

MAX_STAGE_BLOCK_BYTES

@Deprecated
public static final int MAX_STAGE_BLOCK_BYTES

Preterido

Indica o número máximo de bytes que podem ser enviados em uma chamada para stageBlock.

MAX_STAGE_BLOCK_BYTES_LONG

public static final long MAX_STAGE_BLOCK_BYTES_LONG

Indica o número máximo de bytes que podem ser enviados em uma chamada para stageBlock.

MAX_UPLOAD_BLOB_BYTES

@Deprecated
public static final int MAX_UPLOAD_BLOB_BYTES

Preterido

Indica o número máximo de bytes que podem ser enviados em uma chamada para upload.

MAX_UPLOAD_BLOB_BYTES_LONG

public static final long MAX_UPLOAD_BLOB_BYTES_LONG

Indica o número máximo de bytes que podem ser enviados em uma chamada para upload.

Detalhes do método

commitBlockList

public BlockBlobItem commitBlockList(List base64BlockIds)

Grava um blob especificando a lista de IDs de bloco que devem compõe o blob. Para ser gravado como parte de um blob, um bloco deve ter sido gravado com êxito no servidor em uma operação stageBlock anterior. Você pode chamar commitBlockList para atualizar um blob carregando apenas os blocos que foram alterados e confirmando os blocos novos e existentes juntos. Todos os blocos não especificados na lista de blocos e excluídos permanentemente. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

System.out.printf("Committing block list completed. Last modified: %s%n",
     client.commitBlockList(Collections.singletonList(base64BlockId)).getLastModified());

Parâmetros:

base64BlockIds - Uma lista de codificações Stringbase64 que especifica as IDs de bloco a serem confirmadas.

Retornos:

As informações do blob de blocos.

commitBlockList

public BlockBlobItem commitBlockList(List base64BlockIds, boolean overwrite)

Grava um blob especificando a lista de IDs de bloco que devem compõe o blob. Para ser gravado como parte de um blob, um bloco deve ter sido gravado com êxito no servidor em uma operação stageBlock anterior. Você pode chamar commitBlockList para atualizar um blob carregando apenas os blocos que foram alterados e confirmando os blocos novos e existentes juntos. Todos os blocos não especificados na lista de blocos e excluídos permanentemente. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

boolean overwrite = false; // Default behavior
 System.out.printf("Committing block list completed. Last modified: %s%n",
     client.commitBlockList(Collections.singletonList(base64BlockId), overwrite).getLastModified());

Parâmetros:

base64BlockIds - Uma lista de codificações Stringbase64 que especifica as IDs de bloco a serem confirmadas.
overwrite - Se deseja substituir, os dados devem existir no blob.

Retornos:

As informações do blob de blocos.

commitBlockListWithResponse

public Response commitBlockListWithResponse(BlockBlobCommitBlockListOptions options, Duration timeout, Context context)

Grava um blob especificando a lista de IDs de bloco que devem compõe o blob. Para ser gravado como parte de um blob, um bloco deve ter sido gravado com êxito no servidor em uma operação stageBlock anterior. Você pode chamar commitBlockList para atualizar um blob carregando apenas os blocos que foram alterados e confirmando os blocos novos e existentes juntos. Todos os blocos não especificados na lista de blocos e excluídos permanentemente. Para obter mais informações, consulte o Azure Docs.

Para evitar a substituição, passe "*" para setIfNoneMatch(String ifNoneMatch).

Exemplos de código

BlobHttpHeaders headers = new BlobHttpHeaders()
     .setContentMd5("data".getBytes(StandardCharsets.UTF_8))
     .setContentLanguage("en-US")
     .setContentType("binary");

 Map<String, String> metadata = Collections.singletonMap("metadata", "value");
 Map<String, String> tags = Collections.singletonMap("tag", "value");
 BlobRequestConditions requestConditions = new BlobRequestConditions()
     .setLeaseId(leaseId)
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
 Context context = new Context("key", "value");

 System.out.printf("Committing block list completed with status %d%n",
     client.commitBlockListWithResponse(
         new BlockBlobCommitBlockListOptions(Collections.singletonList(base64BlockId)).setHeaders(headers)
             .setMetadata(metadata).setTags(tags).setTier(AccessTier.HOT)
             .setRequestConditions(requestConditions), timeout, context)
         .getStatusCode());

Parâmetros:

timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

As informações do blob de blocos.

commitBlockListWithResponse

public Response commitBlockListWithResponse(List base64BlockIds, BlobHttpHeaders headers, Map metadata, AccessTier tier, BlobRequestConditions requestConditions, Duration timeout, Context context)

Grava um blob especificando a lista de IDs de bloco que devem compõe o blob. Para ser gravado como parte de um blob, um bloco deve ter sido gravado com êxito no servidor em uma operação stageBlock anterior. Você pode chamar commitBlockList para atualizar um blob carregando apenas os blocos que foram alterados e confirmando os blocos novos e existentes juntos. Todos os blocos não especificados na lista de blocos e excluídos permanentemente. Para obter mais informações, consulte o Azure Docs.

Para evitar a substituição, passe "*" para setIfNoneMatch(String ifNoneMatch).

Exemplos de código

BlobHttpHeaders headers = new BlobHttpHeaders()
     .setContentMd5(MessageDigest.getInstance("MD5").digest("data".getBytes(StandardCharsets.UTF_8)))
     .setContentLanguage("en-US")
     .setContentType("binary");

 Map<String, String> metadata = Collections.singletonMap("metadata", "value");
 BlobRequestConditions requestConditions = new BlobRequestConditions()
     .setLeaseId(leaseId)
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
 Context context = new Context("key", "value");

 System.out.printf("Committing block list completed with status %d%n",
     client.commitBlockListWithResponse(Collections.singletonList(base64BlockId), headers, metadata,
         AccessTier.HOT, requestConditions, timeout, context).getStatusCode());

Parâmetros:

base64BlockIds - Uma lista de codificações Stringbase64 que especifica as IDs de bloco a serem confirmadas.
headers - BlobHttpHeaders
metadata - Metadados a serem associados ao blob. Se houver um espaço em branco à esquerda ou à direita em qualquer chave ou valor de metadados, ele deverá ser removido ou codificado.
tier - AccessTier para o blob de destino.
requestConditions - BlobRequestConditions
timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

As informações do blob de blocos.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream()

Cria e abre um fluxo de saída para gravar dados no blob de blocos.

Observação: recomendamos que você chame gravação com buffers de tamanho razoável. Você pode fazer isso encapsulando o BlobOutputStream obtido abaixo com um BufferedOutputStream.

Retornos:

Um BlobOutputStream objeto usado para gravar dados no blob.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream(boolean overwrite)

Cria e abre um fluxo de saída para gravar dados no blob de blocos.

Observação: recomendamos que você chame gravação com buffers de tamanho razoável. Você pode fazer isso encapsulando o BlobOutputStream obtido abaixo com um BufferedOutputStream.

Parâmetros:

overwrite - Se deseja substituir, os dados devem existir no blob.

Retornos:

Um BlobOutputStream objeto usado para gravar dados no blob.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream(BlobRequestConditions requestConditions)

Cria e abre um fluxo de saída para gravar dados no blob de blocos. Se o blob já existir no serviço, ele será substituído.

Para evitar a substituição, passe "*" para setIfNoneMatch(String ifNoneMatch).

Observação: recomendamos que você chame gravação com buffers de tamanho razoável. Você pode fazer isso encapsulando o BlobOutputStream obtido abaixo com um BufferedOutputStream.

Parâmetros:

requestConditions - Um BlobRequestConditions objeto que representa as condições de acesso para o blob.

Retornos:

Um BlobOutputStream objeto usado para gravar dados no blob.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream(ParallelTransferOptions parallelTransferOptions, BlobHttpHeaders headers, Map metadata, AccessTier tier, BlobRequestConditions requestConditions)

Cria e abre um fluxo de saída para gravar dados no blob de blocos. Se o blob já existir no serviço, ele será substituído.

Para evitar a substituição, passe "*" para setIfNoneMatch(String ifNoneMatch).

Observação: recomendamos que você chame gravação com buffers de tamanho razoável. Você pode fazer isso encapsulando o BlobOutputStream obtido abaixo com um BufferedOutputStream.

Parâmetros:

parallelTransferOptions - ParallelTransferOptions usado para configurar o carregamento em buffer.
headers - BlobHttpHeaders
metadata - Metadados a serem associados ao blob. Se houver um espaço em branco à esquerda ou à direita em qualquer chave ou valor de metadados, ele deverá ser removido ou codificado.
tier - AccessTier para o blob de destino.
requestConditions - BlobRequestConditions

Retornos:

Um BlobOutputStream objeto usado para gravar dados no blob.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream(BlockBlobOutputStreamOptions options)

Cria e abre um fluxo de saída para gravar dados no blob de blocos. Se o blob já existir no serviço, ele será substituído.

Para evitar a substituição, passe "*" para setIfNoneMatch(String ifNoneMatch).

Observação: recomendamos que você chame gravação com buffers de tamanho razoável. Você pode fazer isso encapsulando o BlobOutputStream obtido abaixo com um BufferedOutputStream.

Parâmetros:

Retornos:

Um BlobOutputStream objeto usado para gravar dados no blob.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream(BlockBlobOutputStreamOptions options, Context context)

Cria e abre um fluxo de saída para gravar dados no blob de blocos. Se o blob já existir no serviço, ele será substituído.

Para evitar a substituição, passe "*" para setIfNoneMatch(String ifNoneMatch).

Observação: recomendamos que você chame gravação com buffers de tamanho razoável. Você pode fazer isso encapsulando o BlobOutputStream obtido abaixo com um BufferedOutputStream.

Parâmetros:

context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

Um BlobOutputStream objeto usado para gravar dados no blob.

getCustomerProvidedKeyClient

public BlockBlobClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

Cria um novo BlockBlobClient com o customerProvidedKey especificado.

Substituições:

BlockBlobClient.getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

Parâmetros:

customerProvidedKey - para CustomerProvidedKey o blob, passe null para usar nenhuma chave fornecida pelo cliente.

Retornos:

um BlockBlobClient com o especificado customerProvidedKey.

getEncryptionScopeClient

public BlockBlobClient getEncryptionScopeClient(String encryptionScope)

Cria um novo BlockBlobClient com o encryptionScope especificado.

Substituições:

BlockBlobClient.getEncryptionScopeClient(String encryptionScope)

Parâmetros:

encryptionScope - o escopo de criptografia para o blob, passe null para não usar nenhum escopo de criptografia.

Retornos:

um BlockBlobClient com o especificado encryptionScope.

listBlocks

public BlockList listBlocks(BlockListType listType)

Retorna a lista de blocos que foram carregados como parte de um blob de blocos usando o filtro de lista de blocos especificado. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

BlockList block = client.listBlocks(BlockListType.ALL);

 System.out.println("Committed Blocks:");
 block.getCommittedBlocks().forEach(b -> System.out.printf("Name: %s, Size: %d", b.getName(), b.getSizeLong()));

 System.out.println("Uncommitted Blocks:");
 block.getUncommittedBlocks().forEach(b -> System.out.printf("Name: %s, Size: %d", b.getName(), b.getSizeLong()));

Parâmetros:

listType - Especifica qual tipo de blocos retornar.

Retornos:

A lista de blocos.

listBlocksWithResponse

public Response listBlocksWithResponse(BlockListType listType, String leaseId, Duration timeout, Context context)

Retorna a lista de blocos que foram carregados como parte de um blob de blocos usando o filtro de lista de blocos especificado. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

Context context = new Context("key", "value");
 BlockList block = client.listBlocksWithResponse(BlockListType.ALL, leaseId, timeout, context).getValue();

 System.out.println("Committed Blocks:");
 block.getCommittedBlocks().forEach(b -> System.out.printf("Name: %s, Size: %d", b.getName(), b.getSizeLong()));

 System.out.println("Uncommitted Blocks:");
 block.getUncommittedBlocks().forEach(b -> System.out.printf("Name: %s, Size: %d", b.getName(), b.getSizeLong()));

Parâmetros:

listType - Especifica qual tipo de blocos retornar.
leaseId - A ID de concessão da concessão ativa no blob deve corresponder.
timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

A lista de blocos.

listBlocksWithResponse

public Response listBlocksWithResponse(BlockBlobListBlocksOptions options, Duration timeout, Context context)

Retorna a lista de blocos que foram carregados como parte de um blob de blocos usando o filtro de lista de blocos especificado. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

Context context = new Context("key", "value");
 BlockList block = client.listBlocksWithResponse(new BlockBlobListBlocksOptions(BlockListType.ALL)
     .setLeaseId(leaseId)
     .setIfTagsMatch(tags), timeout, context).getValue();

 System.out.println("Committed Blocks:");
 block.getCommittedBlocks().forEach(b -> System.out.printf("Name: %s, Size: %d", b.getName(), b.getSizeLong()));

 System.out.println("Uncommitted Blocks:");
 block.getUncommittedBlocks().forEach(b -> System.out.printf("Name: %s, Size: %d", b.getName(), b.getSizeLong()));

Parâmetros:

timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

A lista de blocos.

openSeekableByteChannelWrite

public SeekableByteChannel openSeekableByteChannelWrite(BlockBlobSeekableByteChannelWriteOptions options)

Abre um canal de bytes que pode ser buscado no modo somente gravação para carregar o blob.

Parâmetros:

Retornos:

Um SeekableByteChannel objeto que representa o canal a ser usado para gravar no blob.

stageBlock

public void stageBlock(String base64BlockId, BinaryData data)

Carrega o bloco especificado na "área de preparo" do blob de blocos para ser confirmado posteriormente por uma chamada para commitBlockList. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

BinaryData binaryData = BinaryData.fromStream(data, length);
 client.stageBlock(base64BlockId, binaryData);

Parâmetros:

base64BlockId - Um Base64 codificado String que especifica a ID desse bloco. Observe que todas as IDs de bloco para um determinado blob devem ter o mesmo comprimento.
data - Os dados a serem gravados no bloco. Observe que isso BinaryData deve ter o comprimento definido e deve ser reproduzido se as novas tentativas estiverem habilitadas (o padrão), consulte BinaryData#isReplayable().

stageBlock

public void stageBlock(String base64BlockId, InputStream data, long length)

Carrega o bloco especificado na "área de preparo" do blob de blocos para ser confirmado posteriormente por uma chamada para commitBlockList. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

client.stageBlock(base64BlockId, data, length);

Parâmetros:

base64BlockId - Um Base64 codificado String que especifica a ID desse bloco. Observe que todas as IDs de bloco para um determinado blob devem ter o mesmo comprimento.
data - Os dados a serem gravados no bloco. Os dados devem ser marcados. Isso é para dar suporte a novas tentativas. Se os dados não puderem ser marcados, considere usar getBlobOutputStream() e gravar no OutputStream retornado. Como alternativa, considere encapsular sua fonte de dados em um BufferedInputStream para adicionar suporte de marca.
length - O comprimento exato dos dados. É importante que esse valor corresponda precisamente ao comprimento dos dados fornecidos no InputStream.

stageBlockFromUrl

public void stageBlockFromUrl(String base64BlockId, String sourceUrl, BlobRange sourceRange)

Cria um novo bloco a ser confirmado como parte de um blob em que o conteúdo é lido de uma URL. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

client.stageBlockFromUrl(base64BlockId, sourceUrl, new BlobRange(offset, count));

Parâmetros:

base64BlockId - Um Base64 codificado String que especifica a ID desse bloco. Observe que todas as IDs de bloco para um determinado blob devem ter o mesmo comprimento.
sourceUrl - A URL para o blob que será a origem da cópia. Um blob de origem na mesma conta de armazenamento pode ser autenticado por meio da Chave Compartilhada. No entanto, se a origem for um blob em outra conta, o blob de origem deverá ser público ou deve ser autenticado por meio de uma assinatura de acesso compartilhado. Se o blob de origem for público, nenhuma autenticação será necessária para executar a operação.
sourceRange - BlobRange

stageBlockFromUrlWithResponse

public Response stageBlockFromUrlWithResponse(BlockBlobStageBlockFromUrlOptions options, Duration timeout, Context context)

Cria um novo bloco a ser confirmado como parte de um blob em que o conteúdo é lido de uma URL. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

BlobRequestConditions sourceRequestConditions = new BlobRequestConditions()
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
 Context context = new Context("key", "value");

 System.out.printf("Staging block from URL completed with status %d%n",
     client.stageBlockFromUrlWithResponse(new BlockBlobStageBlockFromUrlOptions(base64BlockId, sourceUrl)
         .setSourceRange(new BlobRange(offset, count)).setLeaseId(leaseId)
         .setSourceRequestConditions(sourceRequestConditions), timeout, context).getStatusCode());

Parâmetros:

options - Parâmetros para a operação
timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

Uma resposta que contém status código e cabeçalhos HTTP

stageBlockFromUrlWithResponse

public Response stageBlockFromUrlWithResponse(String base64BlockId, String sourceUrl, BlobRange sourceRange, byte[] sourceContentMd5, String leaseId, BlobRequestConditions sourceRequestConditions, Duration timeout, Context context)

Cria um novo bloco a ser confirmado como parte de um blob em que o conteúdo é lido de uma URL. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

BlobRequestConditions sourceRequestConditions = new BlobRequestConditions()
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
 Context context = new Context("key", "value");

 System.out.printf("Staging block from URL completed with status %d%n",
     client.stageBlockFromUrlWithResponse(base64BlockId, sourceUrl, new BlobRange(offset, count), null,
         leaseId, sourceRequestConditions, timeout, context).getStatusCode());

Parâmetros:

base64BlockId - Um Base64 codificado String que especifica a ID desse bloco. Observe que todas as IDs de bloco para um determinado blob devem ter o mesmo comprimento.
sourceUrl - A URL para o blob que será a origem da cópia. Um blob de origem na mesma conta de armazenamento pode ser autenticado por meio da Chave Compartilhada. No entanto, se a origem for um blob em outra conta, o blob de origem deverá ser público ou deve ser autenticado por meio de uma assinatura de acesso compartilhado. Se o blob de origem for público, nenhuma autenticação será necessária para executar a operação.
sourceRange - BlobRange
sourceContentMd5 - 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á.
leaseId - A ID de concessão que a concessão ativa no blob deve corresponder.
sourceRequestConditions - BlobRequestConditions
timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

Uma resposta que contém status código e cabeçalhos HTTP

stageBlockWithResponse

public Response stageBlockWithResponse(BlockBlobStageBlockOptions options, Duration timeout, Context context)

Carrega o bloco especificado na "área de preparo" do blob de blocos para ser confirmado posteriormente por uma chamada para commitBlockList. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

Context context = new Context("key", "value");
 BinaryData binaryData = BinaryData.fromStream(data, length);
 BlockBlobStageBlockOptions options = new BlockBlobStageBlockOptions(base64BlockId, binaryData)
     .setContentMd5(md5)
     .setLeaseId(leaseId);
 System.out.printf("Staging block completed with status %d%n",
     client.stageBlockWithResponse(options, timeout, context).getStatusCode());

Parâmetros:

timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

Uma resposta que contém status código e cabeçalhos HTTP

stageBlockWithResponse

public Response stageBlockWithResponse(String base64BlockId, InputStream data, long length, byte[] contentMd5, String leaseId, Duration timeout, Context context)

Carrega o bloco especificado na "área de preparo" do blob de blocos para ser confirmado posteriormente por uma chamada para commitBlockList. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

Context context = new Context("key", "value");
 System.out.printf("Staging block completed with status %d%n",
     client.stageBlockWithResponse(base64BlockId, data, length, md5, leaseId, timeout, context).getStatusCode());

Parâmetros:

base64BlockId - Um Base64 codificado String que especifica a ID desse bloco. Observe que todas as IDs de bloco para um determinado blob devem ter o mesmo comprimento.
data - Os dados a serem gravados no bloco. Os dados devem ser marcados. Isso é para dar suporte a novas tentativas. Se os dados não puderem ser marcados, considere usar getBlobOutputStream() e gravar no OutputStream retornado. Como alternativa, considere encapsular sua fonte de dados em um BufferedInputStream para adicionar suporte de marca.
length - O comprimento exato dos dados. É importante que esse valor corresponda precisamente ao comprimento dos dados fornecidos no InputStream.
contentMd5 - 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á.
leaseId - A ID de concessão que a concessão ativa no blob deve corresponder.
timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

Uma resposta que contém status código e cabeçalhos HTTP

upload

public BlockBlobItem upload(BinaryData data)

Cria um novo blob de blocos. Por padrão, esse método não substituirá um blob existente. A atualização de um blob de blocos existente substitui todos os metadados existentes no blob. Não há suporte para atualizações parciais com PutBlob; o conteúdo do blob existente é substituído pelo novo conteúdo. Para executar uma atualização parcial de um blob de blocos, use PutBlock e PutBlockList. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

BinaryData binaryData = BinaryData.fromStream(data, length);
 System.out.printf("Uploaded BlockBlob MD5 is %s%n",
     Base64.getEncoder().encodeToString(client.upload(binaryData).getContentMd5()));

Parâmetros:

data - Os dados a serem gravados no bloco. Observe que isso BinaryData deve ter o comprimento definido e deve ser reproduzido se as novas tentativas estiverem habilitadas (o padrão), consulte BinaryData#isReplayable().

Retornos:

As informações do blob de blocos carregado.

upload

public BlockBlobItem upload(BinaryData data, boolean overwrite)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente. A atualização de um blob de blocos existente substitui todos os metadados existentes no blob. Não há suporte para atualizações parciais com PutBlob; o conteúdo do blob existente é substituído pelo novo conteúdo. Para executar uma atualização parcial de um blob de blocos, use PutBlock e PutBlockList. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

boolean overwrite = false;
 BinaryData binaryData = BinaryData.fromStream(data, length);
 System.out.printf("Uploaded BlockBlob MD5 is %s%n",
     Base64.getEncoder().encodeToString(client.upload(binaryData, overwrite).getContentMd5()));

Parâmetros:

data - Os dados a serem gravados no bloco. Observe que isso BinaryData deve ter o comprimento definido e deve ser reproduzido se as novas tentativas estiverem habilitadas (o padrão), consulte BinaryData#isReplayable().
overwrite - Se for necessário substituir, os dados devem existir no blob.

Retornos:

As informações do blob de blocos carregado.

upload

public BlockBlobItem upload(InputStream data, long length)

Cria um novo blob de blocos. Por padrão, esse método não substituirá um blob existente. A atualização de um blob de blocos existente substitui todos os metadados existentes no blob. Não há suporte para atualizações parciais com PutBlob; o conteúdo do blob existente é substituído pelo novo conteúdo. Para executar uma atualização parcial de um blob de blocos, use PutBlock e PutBlockList. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

System.out.printf("Uploaded BlockBlob MD5 is %s%n",
     Base64.getEncoder().encodeToString(client.upload(data, length).getContentMd5()));

Parâmetros:

data - Os dados a serem gravados no blob. Os dados devem ser marcados. Isso é para dar suporte a novas tentativas. Se os dados não puderem ser marcados, considere usar getBlobOutputStream() e gravar no OutputStream retornado. Como alternativa, considere encapsular sua fonte de dados em um BufferedInputStream para adicionar suporte de marca.
length - O comprimento exato dos dados. É importante que esse valor corresponda precisamente ao comprimento dos dados fornecidos no InputStream.

Retornos:

As informações do blob de blocos carregado.

upload

public BlockBlobItem upload(InputStream data, long length, boolean overwrite)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente. A atualização de um blob de blocos existente substitui todos os metadados existentes no blob. Não há suporte para atualizações parciais com PutBlob; o conteúdo do blob existente é substituído pelo novo conteúdo. Para executar uma atualização parcial de um blob de blocos, use PutBlock e PutBlockList. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

boolean overwrite = false;
 System.out.printf("Uploaded BlockBlob MD5 is %s%n",
     Base64.getEncoder().encodeToString(client.upload(data, length, overwrite).getContentMd5()));

Parâmetros:

data - Os dados a serem gravados no blob. Os dados devem ser marcados. Isso é para dar suporte a novas tentativas. Se os dados não puderem ser marcados, considere usar getBlobOutputStream() e gravar no OutputStream retornado. Como alternativa, considere encapsular sua fonte de dados em um BufferedInputStream para adicionar suporte de marca.
length - O comprimento exato dos dados. É importante que esse valor corresponda precisamente ao comprimento dos dados fornecidos no InputStream.
overwrite - Se for necessário substituir, os dados devem existir no blob.

Retornos:

As informações do blob de blocos carregado.

uploadFromUrl

public BlockBlobItem uploadFromUrl(String sourceUrl)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente.

A atualização de um blob de blocos existente substitui todos os metadados existentes no blob. Não há suporte para atualizações parciais com PutBlobFromUrl; o conteúdo do blob existente é substituído pelo novo conteúdo. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

System.out.printf("Uploaded BlockBlob from URL, MD5 is %s%n",
     Base64.getEncoder().encodeToString(client.uploadFromUrl(sourceUrl).getContentMd5()));

Parâmetros:

sourceUrl - A URL de origem da qual carregar.

Retornos:

As informações do blob de blocos carregado.

uploadFromUrl

public BlockBlobItem uploadFromUrl(String sourceUrl, boolean overwrite)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente.

A atualização de um blob de blocos existente substitui todos os metadados existentes no blob. Não há suporte para atualizações parciais com PutBlobFromUrl; o conteúdo do blob existente é substituído pelo novo conteúdo. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

boolean overwrite = false;
 System.out.printf("Uploaded BlockBlob from URL, MD5 is %s%n",
     Base64.getEncoder().encodeToString(client.uploadFromUrl(sourceUrl, overwrite).getContentMd5()));

Parâmetros:

sourceUrl - A URL de origem da qual carregar.
overwrite - Se for necessário substituir, os dados devem existir no blob.

Retornos:

As informações do blob de blocos carregado.

uploadFromUrlWithResponse

public Response uploadFromUrlWithResponse(BlobUploadFromUrlOptions options, Duration timeout, Context context)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente.

A atualização de um blob de blocos existente substitui todos os metadados existentes no blob. Não há suporte para atualizações parciais com PutBlobFromUrl; o conteúdo do blob existente é substituído pelo novo conteúdo. Para obter mais informações, consulte o Azure Docs.

Para evitar a substituição, passe "*" para setIfNoneMatch(String ifNoneMatch).

Exemplos de código

BlobHttpHeaders headers = new BlobHttpHeaders()
     .setContentMd5(MessageDigest.getInstance("MD5").digest("data".getBytes(StandardCharsets.UTF_8)))
     .setContentLanguage("en-US")
     .setContentType("binary");

 Map<String, String> metadata = Collections.singletonMap("metadata", "value");
 Map<String, String> tags = Collections.singletonMap("tag", "value");

 byte[] md5 = MessageDigest.getInstance("MD5").digest("data".getBytes(StandardCharsets.UTF_8));

 BlobRequestConditions requestConditions = new BlobRequestConditions()
     .setLeaseId(leaseId)
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
 Context context = new Context("key", "value");

 System.out.printf("Uploaded BlockBlob MD5 is %s%n", Base64.getEncoder()
     .encodeToString(client.uploadFromUrlWithResponse(new BlobUploadFromUrlOptions(sourceUrl)
         .setHeaders(headers).setTags(tags).setTier(AccessTier.HOT).setContentMd5(md5)
         .setDestinationRequestConditions(requestConditions), timeout, context)
         .getValue()
         .getContentMd5()));

Parâmetros:

timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

As informações do blob de blocos carregado.

uploadWithResponse

public Response uploadWithResponse(BlockBlobSimpleUploadOptions options, Duration timeout, Context context)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente. A atualização de um blob de blocos existente substitui todos os metadados existentes no blob. Não há suporte para atualizações parciais com PutBlob; o conteúdo do blob existente é substituído pelo novo conteúdo. Para executar uma atualização parcial de um blob de blocos, use PutBlock e PutBlockList. Para obter mais informações, consulte o Azure Docs.

Para evitar a substituição, passe "*" para setIfNoneMatch(String ifNoneMatch).

Exemplos de código

BlobHttpHeaders headers = new BlobHttpHeaders()
     .setContentMd5(MessageDigest.getInstance("MD5").digest("data".getBytes(StandardCharsets.UTF_8)))
     .setContentLanguage("en-US")
     .setContentType("binary");

 Map<String, String> metadata = Collections.singletonMap("metadata", "value");
 Map<String, String> tags = Collections.singletonMap("tag", "value");

 byte[] md5 = MessageDigest.getInstance("MD5").digest("data".getBytes(StandardCharsets.UTF_8));

 BlobRequestConditions requestConditions = new BlobRequestConditions()
     .setLeaseId(leaseId)
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
 Context context = new Context("key", "value");

 System.out.printf("Uploaded BlockBlob MD5 is %s%n", Base64.getEncoder()
     .encodeToString(client.uploadWithResponse(new BlockBlobSimpleUploadOptions(data, length)
         .setHeaders(headers).setMetadata(metadata).setTags(tags).setTier(AccessTier.HOT).setContentMd5(md5)
         .setRequestConditions(requestConditions), timeout, context)
         .getValue()
         .getContentMd5()));

Parâmetros:

timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

As informações do blob de blocos carregado.

uploadWithResponse

public Response uploadWithResponse(InputStream data, long length, BlobHttpHeaders headers, Map metadata, AccessTier tier, byte[] contentMd5, BlobRequestConditions requestConditions, Duration timeout, Context context)

Cria um novo blob de blocos ou atualiza o conteúdo de um blob de blocos existente. A atualização de um blob de blocos existente substitui todos os metadados existentes no blob. Não há suporte para atualizações parciais com PutBlob; o conteúdo do blob existente é substituído pelo novo conteúdo. Para executar uma atualização parcial de um blob de blocos, use PutBlock e PutBlockList. Para obter mais informações, consulte o Azure Docs.

Para evitar a substituição, passe "*" para setIfNoneMatch(String ifNoneMatch).

Exemplos de código

BlobHttpHeaders headers = new BlobHttpHeaders()
     .setContentMd5(MessageDigest.getInstance("MD5").digest("data".getBytes(StandardCharsets.UTF_8)))
     .setContentLanguage("en-US")
     .setContentType("binary");

 Map<String, String> metadata = Collections.singletonMap("metadata", "value");

 byte[] md5 = MessageDigest.getInstance("MD5").digest("data".getBytes(StandardCharsets.UTF_8));

 BlobRequestConditions requestConditions = new BlobRequestConditions()
     .setLeaseId(leaseId)
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
 Context context = new Context("key", "value");

 System.out.printf("Uploaded BlockBlob MD5 is %s%n", Base64.getEncoder()
     .encodeToString(client.uploadWithResponse(data, length, headers, metadata, AccessTier.HOT, md5,
         requestConditions, timeout, context)
         .getValue()
         .getContentMd5()));

Parâmetros:

data - Os dados a serem gravados no blob. Os dados devem ser marcados. Isso é para dar suporte a novas tentativas. Se os dados não puderem ser marcados, considere usar getBlobOutputStream() e gravar no OutputStream retornado. Como alternativa, considere encapsular sua fonte de dados em um BufferedInputStream para adicionar suporte de marca.
length - O comprimento exato dos dados. É importante que esse valor corresponda precisamente ao comprimento dos dados fornecidos no InputStream.
headers - BlobHttpHeaders
metadata - Metadados a serem associados ao blob. Se houver espaço em branco à esquerda ou à direita em qualquer chave ou valor de metadados, ele deverá ser removido ou codificado.
tier - AccessTier para o blob de destino.
contentMd5 - 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á.
requestConditions - BlobRequestConditions
timeout - Um valor de tempo limite opcional além do qual um RuntimeException será gerado.
context - Contexto adicional que é passado pelo pipeline Http durante a chamada de serviço.

Retornos:

As informações do blob de blocos carregado.

Aplica-se a