Compartilhar via


AppendBlobAsyncClient Classe

public final class AppendBlobAsyncClient
extends BlobAsyncClientBase

Cliente para um blob de acréscimo. Ele só pode ser instanciado por meio de um buildAppendBlobAsyncClient() ou por meio do método getAppendBlobAsyncClient(). 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 BlobContainerAsyncCliente as operações no serviço estão disponíveis no BlobServiceAsyncClient.

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

Observe que esse cliente é um cliente assíncrono que retorna respostas reativas do projeto Spring Reactor Core (https://projectreactor.io/). Chamar os métodos nesse cliente NÃO iniciará a operação de rede real até .subscribe() que seja chamado na resposta reativa. Você pode simplesmente converter uma dessas respostas em um objeto CompleteableFuture por meio Mono#toFuture()de .

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
Mono<AppendBlobItem> appendBlock(Flux<ByteBuffer> data, long length)

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

Mono<AppendBlobItem> appendBlockFromUrl(String sourceUrl, BlobRange sourceRange)

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

Mono<Response<AppendBlobItem>> appendBlockFromUrlWithResponse(AppendBlobAppendBlockFromUrlOptions options)

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

Mono<Response<AppendBlobItem>> appendBlockFromUrlWithResponse(String sourceUrl, BlobRange sourceRange, byte[] sourceContentMD5, AppendBlobRequestConditions destRequestConditions, BlobRequestConditions sourceRequestConditions)

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

Mono<Response<AppendBlobItem>> appendBlockWithResponse(Flux<ByteBuffer> data, long length, byte[] contentMd5, AppendBlobRequestConditions appendBlobRequestConditions)

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

Mono<AppendBlobItem> create()

Cria um blob de acréscimo de 0 comprimento.

Mono<AppendBlobItem> create(boolean overwrite)

Cria um blob de acréscimo de 0 comprimento.

Mono<AppendBlobItem> createIfNotExists()

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

Mono<Response<AppendBlobItem>> createIfNotExistsWithResponse(AppendBlobCreateOptions options)

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

Mono<Response<AppendBlobItem>> createWithResponse(BlobHttpHeaders headers, Map<String,String> metadata, BlobRequestConditions requestConditions)

Cria um blob de acréscimo de 0 comprimento.

Mono<Response<AppendBlobItem>> createWithResponse(AppendBlobCreateOptions options)

Cria um blob de acréscimo de 0 comprimento.

AppendBlobAsyncClient getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

Cria um novo AppendBlobAsyncClient com o customerProvidedKey especificado.

AppendBlobAsyncClient getEncryptionScopeAsyncClient(String encryptionScope)

Cria um novo AppendBlobAsyncClient 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.

Mono<Void> seal()

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

Mono<Response<Void>> sealWithResponse(AppendBlobSealOptions options)

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

Métodos herdados de BlobAsyncClientBase

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 Mono appendBlock(Flux 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

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

Parâmetros:

data - Os dados a serem gravados no blob. Observe que isso Flux deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for assinado.
length - O comprimento exato dos dados. É importante que esse valor corresponda precisamente ao comprimento dos dados emitidos pelo Flux.

Retornos:

Mono que contém as informações da operação de acréscimo de blob.

appendBlockFromUrl

public Mono 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

client.appendBlockFromUrl(sourceUrl, new BlobRange(offset, count)).subscribe(response ->
     System.out.printf("AppendBlob has %d committed blocks%n", response.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:

Mono que contém as informações da operação de acréscimo de blob.

appendBlockFromUrlWithResponse

public Mono> appendBlockFromUrlWithResponse(AppendBlobAppendBlockFromUrlOptions options)

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));

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

Parâmetros:

options - Parâmetros para a operação.

Retornos:

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

appendBlockFromUrlWithResponse

public Mono> appendBlockFromUrlWithResponse(String sourceUrl, BlobRange sourceRange, byte[] sourceContentMD5, AppendBlobRequestConditions destRequestConditions, BlobRequestConditions sourceRequestConditions)

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));

 client.appendBlockFromUrlWithResponse(sourceUrl, new BlobRange(offset, count), null,
     appendBlobRequestConditions, modifiedRequestConditions).subscribe(response ->
     System.out.printf("AppendBlob has %d committed blocks%n", response.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

Retornos:

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

appendBlockWithResponse

public Mono> appendBlockWithResponse(Flux data, long length, byte[] contentMd5, AppendBlobRequestConditions appendBlobRequestConditions)

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 inscrito. Para 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);

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

Parâmetros:

data - Os dados a serem gravados no blob. Observe que isso Flux deve ser reproduzível se novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux deve produzir os mesmos dados sempre que for inscrito.
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

Retornos:

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

create

public Mono 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

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

Retornos:

Um Mono que contém as informações do blob acrescentado criado.

create

public Mono 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 behavior
 client.create(overwrite).subscribe(response ->
     System.out.printf("Created AppendBlob at %s%n", response.getLastModified()));

Parâmetros:

overwrite - Se for necessário substituir, os dados devem existir no blob.

Retornos:

Um Mono que contém as informações do blob acrescentado criado.

createIfNotExists

public Mono 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().subscribe(response ->
     System.out.printf("Created AppendBlob at %s%n", response.getLastModified()));

Retornos:

Uma resposta Mono reativa sinalizando a conclusão. AppendBlobItem contém as informações do blob acrescentado criado.

createIfNotExistsWithResponse

public Mono> createIfNotExistsWithResponse(AppendBlobCreateOptions options)

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("tag", "value");

 client.createIfNotExistsWithResponse(new AppendBlobCreateOptions().setHeaders(headers)
     .setMetadata(metadata).setTags(tags)).subscribe(response -> {
         if (response.getStatusCode() == 409) {
             System.out.println("Already exists.");
         } else {
             System.out.println("successfully created.");
         }
     });

Parâmetros:

Retornos:

Um Mono que contém Response<T> a conclusão da sinalização, cujo value contém um AppendBlobItem que contém informações sobre o blob de acréscimo. Se Response<T>o código status for 201, um novo blob de páginas foi criado com êxito. Se status código for 409, um blob de acréscimo já existirá nesse local.

createWithResponse

public Mono> createWithResponse(BlobHttpHeaders headers, Map metadata, BlobRequestConditions requestConditions)

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));

 client.createWithResponse(headers, metadata, requestConditions).subscribe(response ->
     System.out.printf("Created AppendBlob at %s%n", response.getValue().getLastModified()));

Parâmetros:

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.
requestConditions - BlobRequestConditions

Retornos:

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

createWithResponse

public Mono> createWithResponse(AppendBlobCreateOptions options)

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("tag", "value");
 BlobRequestConditions requestConditions = new BlobRequestConditions().setLeaseId(leaseId)
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));

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

Parâmetros:

Retornos:

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

getCustomerProvidedKeyAsyncClient

public AppendBlobAsyncClient getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

Cria um novo AppendBlobAsyncClient com o customerProvidedKey especificado.

Substituições:

AppendBlobAsyncClient.getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

Parâmetros:

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

Retornos:

um AppendBlobAsyncClient com o especificado customerProvidedKey.

getEncryptionScopeAsyncClient

public AppendBlobAsyncClient getEncryptionScopeAsyncClient(String encryptionScope)

Cria um novo AppendBlobAsyncClient com o encryptionScope especificado.

Substituições:

AppendBlobAsyncClient.getEncryptionScopeAsyncClient(String encryptionScope)

Parâmetros:

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

Retornos:

um AppendBlobAsyncClient 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 Mono seal()

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

Exemplos de código

client.seal().subscribe(response -> System.out.println("Sealed AppendBlob"));

Retornos:

Uma resposta reativa sinalizando a conclusão.

sealWithResponse

public Mono> sealWithResponse(AppendBlobSealOptions options)

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));

 client.sealWithResponse(new AppendBlobSealOptions().setRequestConditions(requestConditions))
     .subscribe(response -> System.out.println("Sealed AppendBlob"));

Parâmetros:

Retornos:

Uma resposta reativa sinalizando a conclusão.

Aplica-se a