Partilhar via


AppendBlobClient Classe

public final class AppendBlobClient
extends BlobClientBase

Cliente para um blob de acréscimo. Ele só pode ser instanciado por meio de um SpecializedBlobClientBuilder ou por meio do método getAppendBlobClient(). 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.

Esse cliente contém operações em um blob. As operações em um contêiner estão disponíveis no BlobContainerCliente as operações no serviço estão disponíveis no BlobServiceClient.

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

Resumo do campo

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

Preterido

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

static final int MAX_BLOCKS

Preterido

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

Resumo do método

Modificador e tipo Método e descrição
AppendBlobItem appendBlock(InputStream data, long length)

Confirma um novo bloco de dados no final do blob de acréscimo existente.

AppendBlobItem appendBlockFromUrl(String sourceUrl, BlobRange sourceRange)

Confirma um novo bloco de dados de outro blob até o final desse blob de acréscimo.

Response<AppendBlobItem> appendBlockFromUrlWithResponse(AppendBlobAppendBlockFromUrlOptions options, Duration timeout, Context context)

Confirma um novo bloco de dados de outro blob até o final desse blob de acréscimo.

Response<AppendBlobItem> appendBlockFromUrlWithResponse(String sourceUrl, BlobRange sourceRange, byte[] sourceContentMd5, AppendBlobRequestConditions destRequestConditions, BlobRequestConditions sourceRequestConditions, Duration timeout, Context context)

Confirma um novo bloco de dados de outro blob até o final desse blob de acréscimo.

Response<AppendBlobItem> appendBlockWithResponse(InputStream data, long length, byte[] contentMd5, AppendBlobRequestConditions appendBlobRequestConditions, Duration timeout, Context context)

Confirma um novo bloco de dados no final do blob de acréscimo existente.

AppendBlobItem create()

Cria um blob de acréscimo de 0 comprimento.

AppendBlobItem create(boolean overwrite)

Cria um blob de acréscimo de 0 comprimento.

AppendBlobItem createIfNotExists()

Cria um blob de acréscimo de 0 comprimento se ele não existir.

Response<AppendBlobItem> createIfNotExistsWithResponse(AppendBlobCreateOptions options, Duration timeout, Context context)

Cria um blob de acréscimo de 0 comprimento se ele não existir.

Response<AppendBlobItem> createWithResponse(BlobHttpHeaders headers, Map<String,String> metadata, BlobRequestConditions requestConditions, Duration timeout, Context context)

Cria um blob de acréscimo de 0 comprimento.

Response<AppendBlobItem> createWithResponse(AppendBlobCreateOptions options, Duration timeout, Context context)

Cria um blob de acréscimo de 0 comprimento.

BlobOutputStream getBlobOutputStream()

Cria e abre um fluxo de saída para gravar dados no blob de acréscimo.

BlobOutputStream getBlobOutputStream(boolean overwrite)

Cria e abre um fluxo de saída para gravar dados no blob de acréscimo.

BlobOutputStream getBlobOutputStream(AppendBlobRequestConditions requestConditions)

Cria e abre um fluxo de saída para gravar dados no blob de acréscimo.

AppendBlobClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

Cria um novo AppendBlobClient com o customerProvidedKey especificado.

AppendBlobClient getEncryptionScopeClient(String encryptionScope)

Cria um novo AppendBlobClient com o encryptionScope especificado.

int getMaxAppendBlockBytes()

Obtenha o número máximo de bytes de bloco de acréscimo com base na versão do serviço que está sendo usada.

int getMaxBlocks()

Obtenha o número máximo de blocos permitidos em um blob de acréscimo.

void seal()

Sela um blob de acréscimo, tornando-o somente leitura.

Response<Void> sealWithResponse(AppendBlobSealOptions options, Duration timeout, Context context)

Sela um blob de acréscimo, tornando-o somente leitura.

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 generateSas generateUserDelegationSas 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_APPEND_BLOCK_BYTES

@Deprecated
public static final int MAX_APPEND_BLOCK_BYTES

Preterido

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

MAX_BLOCKS

@Deprecated
public static final int MAX_BLOCKS

Preterido

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

Detalhes do método

appendBlock

public AppendBlobItem appendBlock(InputStream data, long length)

Confirma um novo bloco de dados no final do blob de acréscimo existente.

Observe que os dados passados devem ser reproduzíveis se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado. Para as versões de serviço 2022-11-02 e posteriores, o tamanho máximo do bloco é de 100 MB. Para versões anteriores, o tamanho máximo do bloco é de 4 MB. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

System.out.printf("AppendBlob has %d committed blocks%n",
     client.appendBlock(data, length).getBlobCommittedBlockCount());

Parâmetros:

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

Retornos:

As informações da operação de acréscimo de blob.

appendBlockFromUrl

public AppendBlobItem appendBlockFromUrl(String sourceUrl, BlobRange sourceRange)

Confirma um novo bloco de dados de outro blob até o final desse blob de acréscimo.

Exemplos de código

System.out.printf("AppendBlob has %d committed blocks%n",
     client.appendBlockFromUrl(sourceUrl, new BlobRange(offset, count)).getBlobCommittedBlockCount());

Parâmetros:

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 - A origem BlobRange a ser copiada.

Retornos:

As informações da operação de acréscimo de blob.

appendBlockFromUrlWithResponse

public Response appendBlockFromUrlWithResponse(AppendBlobAppendBlockFromUrlOptions options, Duration timeout, Context context)

Confirma um novo bloco de dados de outro blob até o final desse blob de acréscimo.

Exemplos de código

AppendBlobRequestConditions appendBlobRequestConditions = new AppendBlobRequestConditions()
     .setAppendPosition(POSITION)
     .setMaxSize(maxSize);

 BlobRequestConditions modifiedRequestConditions = new BlobRequestConditions()
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));

 Context context = new Context("key", "value");

 System.out.printf("AppendBlob has %d committed blocks%n",
     client.appendBlockFromUrlWithResponse(new AppendBlobAppendBlockFromUrlOptions(sourceUrl)
         .setSourceRange(new BlobRange(offset, count))
         .setDestinationRequestConditions(appendBlobRequestConditions)
         .setSourceRequestConditions(modifiedRequestConditions), timeout,
         context).getValue().getBlobCommittedBlockCount());

Parâmetros:

options - opções 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:

As informações da operação de acréscimo de blob.

appendBlockFromUrlWithResponse

public Response appendBlockFromUrlWithResponse(String sourceUrl, BlobRange sourceRange, byte[] sourceContentMd5, AppendBlobRequestConditions destRequestConditions, BlobRequestConditions sourceRequestConditions, Duration timeout, Context context)

Confirma um novo bloco de dados de outro blob até o final desse blob de acréscimo.

Exemplos de código

AppendBlobRequestConditions appendBlobRequestConditions = new AppendBlobRequestConditions()
     .setAppendPosition(POSITION)
     .setMaxSize(maxSize);

 BlobRequestConditions modifiedRequestConditions = new BlobRequestConditions()
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));

 Context context = new Context("key", "value");

 System.out.printf("AppendBlob has %d committed blocks%n",
     client.appendBlockFromUrlWithResponse(sourceUrl, new BlobRange(offset, count), null,
         appendBlobRequestConditions, modifiedRequestConditions, timeout,
         context).getValue().getBlobCommittedBlockCount());

Parâmetros:

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 do blob de origem. Se especificado, o serviço calculará o MD5 dos dados recebidos e falhará na solicitação se não corresponder ao MD5 fornecido.
destRequestConditions - AppendBlobRequestConditions
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:

As informações da operação de acréscimo de blob.

appendBlockWithResponse

public Response appendBlockWithResponse(InputStream data, long length, byte[] contentMd5, AppendBlobRequestConditions appendBlobRequestConditions, Duration timeout, Context context)

Confirma um novo bloco de dados no final do blob de acréscimo existente.

Observe que os dados passados devem ser reproduzíveis se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado. Para as versões de serviço 2022-11-02 e posteriores, o tamanho máximo do bloco é de 100 MB. Para versões anteriores, o tamanho máximo do bloco é de 4 MB. Para obter mais informações, consulte o Azure Docs.

Exemplos de código

byte[] md5 = MessageDigest.getInstance("MD5").digest("data".getBytes(StandardCharsets.UTF_8));
 AppendBlobRequestConditions requestConditions = new AppendBlobRequestConditions()
     .setAppendPosition(POSITION)
     .setMaxSize(maxSize);
 Context context = new Context("key", "value");

 System.out.printf("AppendBlob has %d committed blocks%n",
     client.appendBlockWithResponse(data, length, md5, requestConditions, timeout, context)
         .getValue().getBlobCommittedBlockCount());

Parâmetros:

data - Os dados a serem gravados no blob. Os dados devem ser marcáveis. Isso é para dar suporte a novas tentativas. Se os dados não estiverem marcados, considere usar getBlobOutputStream() e gravar no OutputStream retornado. Como alternativa, considere encapsular sua fonte de dados em um BufferedInputStream para adicionar suporte a marcas.
length - O comprimento exato dos dados. É importante que esse valor corresponda precisamente ao comprimento dos dados emitidos pelo Flux.
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á.
appendBlobRequestConditions - AppendBlobRequestConditions
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:

Um Response<T> cujo value contém a operação de acréscimo de blob.

create

public AppendBlobItem create()

Cria um blob de acréscimo de 0 comprimento. Chame appendBlock para acrescentar dados a um blob de acréscimo. Por padrão, esse método não substituirá um blob existente.

Exemplos de código

System.out.printf("Created AppendBlob at %s%n", client.create().getLastModified());

Retornos:

As informações do blob acrescentado criado.

create

public AppendBlobItem create(boolean overwrite)

Cria um blob de acréscimo de 0 comprimento. Chame appendBlock para acrescentar dados a um blob de acréscimo.

Exemplos de código

boolean overwrite = false; // Default value
 System.out.printf("Created AppendBlob at %s%n", client.create(overwrite).getLastModified());

Parâmetros:

overwrite - Se deseja ou não substituir, os dados devem existir no blob.

Retornos:

As informações do blob acrescentado criado.

createIfNotExists

public AppendBlobItem createIfNotExists()

Cria um blob de acréscimo de 0 comprimento se ele não existir. Chame appendBlock para acrescentar dados a um blob de acréscimo.

Exemplos de código

client.createIfNotExists();
 System.out.println("Created AppendBlob");

Retornos:

AppendBlobItem que contém informações do blob acrescentado criado.

createIfNotExistsWithResponse

public Response createIfNotExistsWithResponse(AppendBlobCreateOptions options, Duration timeout, Context context)

Cria um blob de acréscimo de 0 comprimento se ele não existir. Chame appendBlock para acrescentar dados a um blob de acréscimo.

Exemplos de código

BlobHttpHeaders headers = new BlobHttpHeaders()
     .setContentType("binary")
     .setContentLanguage("en-US");
 Map<String, String> metadata = Collections.singletonMap("metadata", "value");
 Map<String, String> tags = Collections.singletonMap("tags", "value");
 Context context = new Context("key", "value");

 Response<AppendBlobItem> response = client.createIfNotExistsWithResponse(new AppendBlobCreateOptions()
     .setHeaders(headers).setMetadata(metadata).setTags(tags), timeout, context);
 if (response.getStatusCode() == 409) {
     System.out.println("Already existed.");
 } else {
     System.out.printf("Create completed with status %d%n", response.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 conclusão de sinalização de resposta Response<T> reativa, cuja value contém as AppendBlobItem informações que contêm sobre o blob de acréscimo. Se Response<T>o código de status for 201, um novo blob de acréscimo foi criado com êxito. Se status código for 409, um blob de acréscimo já existirá nesse local.

createWithResponse

public Response createWithResponse(BlobHttpHeaders headers, Map metadata, BlobRequestConditions requestConditions, Duration timeout, Context context)

Cria um blob de acréscimo de 0 comprimento. Chame appendBlock para acrescentar dados a um blob de acréscimo.

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

Exemplos de código

BlobHttpHeaders headers = new BlobHttpHeaders()
     .setContentType("binary")
     .setContentLanguage("en-US");
 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("Created AppendBlob at %s%n",
     client.createWithResponse(headers, metadata, requestConditions, timeout, context).getValue()
         .getLastModified());

Parâmetros:

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

Um Response<T> cujo value contém o blob acrescentado criado.

createWithResponse

public Response createWithResponse(AppendBlobCreateOptions options, Duration timeout, Context context)

Cria um blob de acréscimo de 0 comprimento. Chame appendBlock para acrescentar dados a um blob de acréscimo.

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

Exemplos de código

BlobHttpHeaders headers = new BlobHttpHeaders()
     .setContentType("binary")
     .setContentLanguage("en-US");
 Map<String, String> metadata = Collections.singletonMap("metadata", "value");
 Map<String, String> tags = Collections.singletonMap("tags", "value");
 BlobRequestConditions requestConditions = new BlobRequestConditions()
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
 Context context = new Context("key", "value");

 System.out.printf("Created AppendBlob at %s%n",
     client.createWithResponse(new AppendBlobCreateOptions().setHeaders(headers).setMetadata(metadata)
         .setTags(tags).setRequestConditions(requestConditions), timeout, context).getValue()
         .getLastModified());

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:

Um Response<T> cujo value contém o blob acrescentado criado.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream()

Cria e abre um fluxo de saída para gravar dados no blob de acréscimo. Se o blob já existir no serviço, novos dados serão acrescentados ao blob existente.

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 acréscimo. Se overwrite for especificado true, o blob existente será excluído e recriado, caso existam dados no blob. Se overwrite for especificado false, novos dados serão acrescentados ao blob existente.

Parâmetros:

overwrite - Se um blob existente deve ser excluído e recriado, os dados devem existir no blob.

Retornos:

Um BlobOutputStream objeto usado para gravar dados no blob.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream(AppendBlobRequestConditions requestConditions)

Cria e abre um fluxo de saída para gravar dados no blob de acréscimo.

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.

getCustomerProvidedKeyClient

public AppendBlobClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

Cria um novo AppendBlobClient com o customerProvidedKey especificado.

Substituições:

AppendBlobClient.getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

Parâmetros:

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

Retornos:

um AppendBlobClient com o especificado customerProvidedKey.

getEncryptionScopeClient

public AppendBlobClient getEncryptionScopeClient(String encryptionScope)

Cria um novo AppendBlobClient com o encryptionScope especificado.

Substituições:

AppendBlobClient.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 AppendBlobClient com o especificado encryptionScope.

getMaxAppendBlockBytes

public int getMaxAppendBlockBytes()

Obtenha o número máximo de bytes de bloco de acréscimo com base na versão do serviço que está sendo usada. As versões de serviço 2022-11-02 e superiores dão suporte ao carregamento de bytes de bloco de até 100 MB, todas as versões de serviço mais antigas dão suporte a até 4 MB.

Retornos:

o número máximo de bytes de bloco que podem ser carregados com base na versão do serviço.

getMaxBlocks

public int getMaxBlocks()

Obtenha o número máximo de blocos permitidos em um blob de acréscimo.

Retornos:

o número máximo de blocos que podem ser carregados em um blob de acréscimo.

seal

public void seal()

Sela um blob de acréscimo, tornando-o somente leitura. Quaisquer acréscimos subsequentes falharão.

Exemplos de código

client.seal();
 System.out.println("Sealed AppendBlob");

sealWithResponse

public Response sealWithResponse(AppendBlobSealOptions options, Duration timeout, Context context)

Sela um blob de acréscimo, tornando-o somente leitura. Quaisquer acréscimos subsequentes falharão.

Exemplos de código

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

 client.sealWithResponse(new AppendBlobSealOptions().setRequestConditions(requestConditions), timeout, context);
 System.out.println("Sealed AppendBlob");

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 reativa sinalizando a conclusão.

Aplica-se a