Compartir a través de


AppendBlobAsyncClient Clase

public final class AppendBlobAsyncClient
extends BlobAsyncClientBase

Cliente a un blob en anexos. Solo se puede crear una instancia a través de o buildAppendBlobAsyncClient() a través del método getAppendBlobAsyncClient(). Esta clase no contiene ningún estado sobre un blob determinado, sino que es una manera cómoda de enviar las solicitudes adecuadas al recurso en el servicio.

Este cliente contiene operaciones en un blob. Las operaciones de un contenedor están disponibles en BlobContainerAsyncClienty las operaciones del servicio están disponibles en BlobServiceAsyncClient.

Consulte Azure Docs para más información.

Tenga en cuenta que este cliente es un cliente asincrónico que devuelve respuestas reactivas del proyecto Spring Reactor Core (https://projectreactor.io/). Llamar a los métodos de este cliente NO iniciará la operación de red real, hasta .subscribe() que se llame a en la respuesta reactiva. Simplemente puede convertir una de estas respuestas a un objeto CompletableFuture a través Mono#toFuture()de .

Resumen del campo

Modificador y tipo Campo y descripción
static final int MAX_APPEND_BLOCK_BYTES

Obsoleto

Indica el número máximo de bytes que se pueden enviar en una llamada a appendBlock.

static final int MAX_BLOCKS

Obsoleto

Indica el número máximo de bloques permitidos en un blob en anexos.

Resumen del método

Modificador y tipo Método y descripción
Mono<AppendBlobItem> appendBlock(Flux<ByteBuffer> data, long length)

Confirma un nuevo bloque de datos al final del blob en anexos existente.

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

Confirma un nuevo bloque de datos de otro blob al final de este blob en anexos.

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

Confirma un nuevo bloque de datos de otro blob al final de este blob en anexos.

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

Confirma un nuevo bloque de datos de otro blob al final de este blob en anexos.

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

Confirma un nuevo bloque de datos al final del blob en anexos existente.

Mono<AppendBlobItem> create()

Crea un blob en anexos de longitud 0.

Mono<AppendBlobItem> create(boolean overwrite)

Crea un blob en anexos de longitud 0.

Mono<AppendBlobItem> createIfNotExists()

Crea un blob en anexos de longitud 0 si no existe.

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

Crea un blob en anexos de longitud 0 si no existe.

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

Crea un blob en anexos de longitud 0.

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

Crea un blob en anexos de longitud 0.

AppendBlobAsyncClient getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

Crea un nuevo AppendBlobAsyncClient con el customerProvidedKey especificado.

AppendBlobAsyncClient getEncryptionScopeAsyncClient(String encryptionScope)

Crea un nuevo AppendBlobAsyncClient con el encryptionScope especificado.

int getMaxAppendBlockBytes()

Obtiene el número máximo de bytes de bloque anexados en función de la versión del servicio que se usa.

int getMaxBlocks()

Obtenga el número máximo de bloques permitidos en un blob en anexos.

Mono<Void> seal()

Sella un blob en anexos, lo que hace que sea de solo lectura.

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

Sella un blob en anexos, lo que hace que sea de solo lectura.

Métodos heredados de BlobAsyncClientBase

Métodos heredados de java.lang.Object

Detalles del campo

MAX_APPEND_BLOCK_BYTES

@Deprecated
public static final int MAX_APPEND_BLOCK_BYTES

Obsoleto

Indica el número máximo de bytes que se pueden enviar en una llamada a appendBlock.

MAX_BLOCKS

@Deprecated
public static final int MAX_BLOCKS

Obsoleto

Indica el número máximo de bloques permitidos en un blob en anexos.

Detalles del método

appendBlock

public Mono appendBlock(Flux data, long length)

Confirma un nuevo bloque de datos al final del blob en anexos existente.

Tenga en cuenta que los datos pasados deben reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe producir los mismos datos cada vez que se suscribe. Para las versiones de servicio 2022-11-02 y posteriores, el tamaño máximo de bloque es de 100 MB. En las versiones anteriores, el tamaño máximo de bloque es de 4 MB. Para más información, consulte Azure Docs.

Ejemplos de código

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

Parámetros:

data - Datos que se van a escribir en el blob. Tenga en cuenta que esto Flux debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe generar los mismos datos cada vez que se suscribe.
length - Longitud exacta de los datos. Es importante que este valor coincida exactamente con la longitud de los datos emitidos por .Flux

Devoluciones:

Mono que contiene la información de la operación de blob en anexos.

appendBlockFromUrl

public Mono appendBlockFromUrl(String sourceUrl, BlobRange sourceRange)

Confirma un nuevo bloque de datos de otro blob al final de este blob en anexos.

Ejemplos 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 - Dirección URL del blob que será el origen de la copia. Un blob de origen en la misma cuenta de almacenamiento se puede autenticar mediante clave compartida. Sin embargo, si el origen es un blob de otra cuenta, el blob de origen debe ser público o debe autenticarse a través de una firma de acceso compartido. Si el blob de origen es público, no se requiere autenticación para realizar la operación.
sourceRange - BlobRange Origen que se va a copiar.

Devoluciones:

Mono que contiene la información de la operación de blob en anexos.

appendBlockFromUrlWithResponse

public Mono> appendBlockFromUrlWithResponse(AppendBlobAppendBlockFromUrlOptions options)

Confirma un nuevo bloque de datos de otro blob al final de este blob en anexos.

Ejemplos 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 la operación.

Devoluciones:

que Mono contiene Response<T> la value operación de blob en anexos.

appendBlockFromUrlWithResponse

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

Confirma un nuevo bloque de datos de otro blob al final de este blob en anexos.

Ejemplos 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 - Dirección URL del blob que será el origen de la copia. Un blob de origen en la misma cuenta de almacenamiento se puede autenticar mediante clave compartida. Sin embargo, si el origen es un blob de otra cuenta, el blob de origen debe ser público o debe autenticarse a través de una firma de acceso compartido. Si el blob de origen es público, no se requiere autenticación para realizar la operación.
sourceRange - BlobRange
sourceContentMD5 - Hash MD5 del contenido del bloque del blob de origen. Si se especifica, el servicio calculará el MD5 de los datos recibidos y producirá un error en la solicitud si no coincide con el MD5 proporcionado.
destRequestConditions - AppendBlobRequestConditions
sourceRequestConditions - BlobRequestConditions

Devoluciones:

que Mono contiene Response<T> la value operación de blob en anexos.

appendBlockWithResponse

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

Confirma un nuevo bloque de datos al final del blob en anexos existente.

Tenga en cuenta que los datos pasados deben reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe generar los mismos datos cada vez que se suscriba. Para las versiones de servicio 2022-11-02 y posteriores, el tamaño máximo de bloque es de 100 MB. En el caso de las versiones anteriores, el tamaño máximo de bloque es de 4 MB. Para más información, consulte Azure Docs.

Ejemplos 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 - Datos que se van a escribir en el blob. Tenga en cuenta que esto Flux debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux debe generar los mismos datos cada vez que se suscribe.
length - Longitud exacta de los datos. Es importante que este valor coincida exactamente con la longitud de los datos emitidos por .Flux
contentMd5 - Hash MD5 del contenido del bloque. Este hash se utiliza para comprobar la integridad del bloque durante el transporte. Cuando se especifica este encabezado, el servicio de almacenamiento compara el hash del contenido que ha llegado con este valor de encabezado. Tenga en cuenta que este hash MD5 no se almacena con el blob. Si los dos hash no coinciden, se producirá un error en la operación.
appendBlobRequestConditions - AppendBlobRequestConditions

Devoluciones:

que Mono contiene Response<T>value la operación de blob en anexos.

create

public Mono create()

Crea un blob en anexos de longitud 0. Llame a appendBlock para anexar datos a un blob en anexos. De forma predeterminada, este método no sobrescribirá un blob existente.

Ejemplos de código

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

Devoluciones:

que Mono contiene la información del blob anexado creado.

create

public Mono create(boolean overwrite)

Crea un blob en anexos de longitud 0. Llame a appendBlock para anexar datos a un blob en anexos.

Ejemplos 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 - Si se va a sobrescribir, deben existir datos en el blob.

Devoluciones:

que Mono contiene la información del blob anexado creado.

createIfNotExists

public Mono createIfNotExists()

Crea un blob en anexos de longitud 0 si no existe. Llame a appendBlock para anexar datos a un blob en anexos.

Ejemplos de código

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

Devoluciones:

Finalización de señalización de respuesta Mono reactiva. AppendBlobItem contiene la información del blob anexado creado.

createIfNotExistsWithResponse

public Mono> createIfNotExistsWithResponse(AppendBlobCreateOptions options)

Crea un blob en anexos de longitud 0 si no existe. Llame a appendBlock para anexar datos a un blob en anexos.

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

Devoluciones:

que Mono contiene Response<T> la finalización de señalización, cuyo value objeto contiene AppendBlobItem información sobre el blob en anexos. Si Response<T>el código de estado es 201, se creó correctamente un nuevo blob en páginas. Si el código de estado es 409, ya existía un blob en anexos en esta ubicación.

createWithResponse

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

Crea un blob en anexos de longitud 0. Llame a appendBlock para anexar datos a un blob en anexos.

Para evitar sobrescribir, pase "*" a setIfNoneMatch(String ifNoneMatch).

Ejemplos 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 - Metadatos que se van a asociar al blob. Si hay espacios en blanco iniciales o finales en cualquier clave o valor de metadatos, debe quitarse o codificarse.
requestConditions - BlobRequestConditions

Devoluciones:

que Mono contiene Response<T>value el blob anexado creado.

createWithResponse

public Mono> createWithResponse(AppendBlobCreateOptions options)

Crea un blob en anexos de longitud 0. Llame a appendBlock para anexar datos a un blob en anexos.

Para evitar sobrescribir, pase "*" a setIfNoneMatch(String ifNoneMatch).

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

Devoluciones:

que Mono contiene Response<T>value el blob anexado creado.

getCustomerProvidedKeyAsyncClient

public AppendBlobAsyncClient getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

Crea un nuevo AppendBlobAsyncClient con el customerProvidedKey especificado.

Invalidaciones:

AppendBlobAsyncClient.getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

Parámetros:

customerProvidedKey - para CustomerProvidedKey el blob, pase null para que no use ninguna clave proporcionada por el cliente.

Devoluciones:

un AppendBlobAsyncClient objeto con el especificado customerProvidedKey.

getEncryptionScopeAsyncClient

public AppendBlobAsyncClient getEncryptionScopeAsyncClient(String encryptionScope)

Crea un nuevo AppendBlobAsyncClient con el encryptionScope especificado.

Invalidaciones:

AppendBlobAsyncClient.getEncryptionScopeAsyncClient(String encryptionScope)

Parámetros:

encryptionScope - el ámbito de cifrado del blob, pase null para que no use ningún ámbito de cifrado.

Devoluciones:

un AppendBlobAsyncClient objeto con el especificado encryptionScope.

getMaxAppendBlockBytes

public int getMaxAppendBlockBytes()

Obtiene el número máximo de bytes de bloque anexados en función de la versión del servicio que se usa. Las versiones de servicio 2022-11-02 y posteriores admiten la carga de bytes de bloque de hasta 100 MB, todas las versiones de servicio anteriores admiten hasta 4 MB.

Devoluciones:

el número máximo de bytes de bloque que se pueden cargar en función de la versión del servicio.

getMaxBlocks

public int getMaxBlocks()

Obtenga el número máximo de bloques permitidos en un blob en anexos.

Devoluciones:

el número máximo de bloques que se pueden cargar en un blob en anexos.

seal

public Mono seal()

Sella un blob en anexos, lo que hace que sea de solo lectura. Se producirá un error en las anexaciones posteriores.

Ejemplos de código

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

Devoluciones:

Finalización de señalización de respuesta reactiva.

sealWithResponse

public Mono> sealWithResponse(AppendBlobSealOptions options)

Sella un blob en anexos, lo que hace que sea de solo lectura. Se producirá un error en las anexaciones posteriores.

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

Devoluciones:

Finalización de señalización de respuesta reactiva.

Se aplica a