Compartir a través de


AppendBlobClient Clase

public final class AppendBlobClient
extends BlobClientBase

Cliente a un blob en anexos. Solo se puede crear una instancia a través de o SpecializedBlobClientBuilder a través del método getAppendBlobClient(). Esta clase no contiene ningún estado sobre un blob determinado, sino que es una forma 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 BlobContainerClienty las operaciones del servicio están disponibles en BlobServiceClient.

Consulte Azure Docs para más información.

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

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

AppendBlobItem appendBlockFromUrl(String sourceUrl, BlobRange sourceRange)

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

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

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

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

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

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

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

AppendBlobItem create()

Crea un blob en anexos de longitud 0.

AppendBlobItem create(boolean overwrite)

Crea un blob en anexos de longitud 0.

AppendBlobItem createIfNotExists()

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

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

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

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

Crea un blob en anexos de longitud 0.

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

Crea un blob en anexos de longitud 0.

BlobOutputStream getBlobOutputStream()

Crea y abre un flujo de salida para escribir datos en el blob en anexos.

BlobOutputStream getBlobOutputStream(boolean overwrite)

Crea y abre un flujo de salida para escribir datos en el blob en anexos.

BlobOutputStream getBlobOutputStream(AppendBlobRequestConditions requestConditions)

Crea y abre un flujo de salida para escribir datos en el blob en anexos.

AppendBlobClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

Crea un nuevo AppendBlobClient con el customerProvidedKey especificado.

AppendBlobClient getEncryptionScopeClient(String encryptionScope)

Crea un nuevo AppendBlobClient con el encryptionScope especificado.

int getMaxAppendBlockBytes()

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

void seal()

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

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

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

Métodos heredados 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 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 AppendBlobItem appendBlock(InputStream 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 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

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

Parámetros:

data - Datos que se van a escribir en el blob. Los datos deben ser marcados. Esto es para admitir reintentos. Si los datos no se pueden marcar, considere la posibilidad de usar getBlobOutputStream() y escribir en outputStream devuelto. Como alternativa, considere la posibilidad de encapsular el origen de datos en bufferedInputStream para agregar compatibilidad con marcas.
length - Longitud exacta de los datos. Es importante que este valor coincida exactamente con la longitud de los datos emitidos por .Flux

Devoluciones:

Información de la operación de blob en anexos.

appendBlockFromUrl

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

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

Información de la operación de blob en anexos.

appendBlockFromUrlWithResponse

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

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

 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 - opciones para la operación
timeout - Valor de tiempo de espera opcional más allá del cual se generará un RuntimeException .
context - Contexto adicional que se pasa a través de la canalización Http durante la llamada al servicio.

Devoluciones:

Información de la operación de blob en anexos.

appendBlockFromUrlWithResponse

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

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

 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 - 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
timeout - Valor de tiempo de espera opcional más allá del cual se generará un RuntimeException .
context - Contexto adicional que se pasa a través de la canalización Http durante la llamada al servicio.

Devoluciones:

Información de la operación de blob en anexos.

appendBlockWithResponse

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

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

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 - Datos que se van a escribir en el blob. Los datos deben ser marcados. Esto es para admitir reintentos. Si los datos no se pueden marcar, considere la posibilidad de usar getBlobOutputStream() y escribir en outputStream devuelto. Como alternativa, considere la posibilidad de encapsular el origen de datos en bufferedInputStream para agregar compatibilidad con marcas.
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
timeout - Valor de tiempo de espera opcional más allá del cual se generará un RuntimeException .
context - Contexto adicional que se pasa a través de la canalización Http durante la llamada al servicio.

Devoluciones:

cuya Response<T> operación value contiene el blob en anexos.

create

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

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

Devoluciones:

Información del blob anexado creado.

create

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

Parámetros:

overwrite - Si se va a sobrescribir o no, deben existir datos en el blob.

Devoluciones:

Información del blob anexado creado.

createIfNotExists

public AppendBlobItem 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();
 System.out.println("Created AppendBlob");

Devoluciones:

AppendBlobItem que contiene información del blob anexado creado.

createIfNotExistsWithResponse

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

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("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 - Valor de tiempo de espera opcional más allá del cual se generará un RuntimeException .
context - Contexto adicional que se pasa a través de la canalización Http durante la llamada al servicio.

Devoluciones:

Finalización de la señalización de respuesta Response<T> reactiva, cuya value información 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 anexos. Si el código de estado es 409, ya existía un blob en anexos en esta ubicación.

createWithResponse

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

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));
 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 - Metadatos que se van a asociar al blob. Si hay espacios en blanco iniciales o finales en cualquier clave o valor de metadatos, se debe quitar o codificar.
requestConditions - BlobRequestConditions
timeout - Valor de tiempo de espera opcional más allá del cual se generará un RuntimeException .
context - Contexto adicional que se pasa a través de la canalización Http durante la llamada al servicio.

Devoluciones:

Response<T> cuya colección value contiene el blob anexado creado.

createWithResponse

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

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("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 - Valor de tiempo de espera opcional más allá del cual se generará un RuntimeException .
context - Contexto adicional que se pasa a través de la canalización Http durante la llamada al servicio.

Devoluciones:

Response<T> cuya colección value contiene el blob anexado creado.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream()

Crea y abre un flujo de salida para escribir datos en el blob en anexos. Si el blob ya existe en el servicio, los nuevos datos se anexarán al blob existente.

Devoluciones:

Objeto BlobOutputStream que se usa para escribir datos en el blob.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream(boolean overwrite)

Crea y abre un flujo de salida para escribir datos en el blob en anexos. Si se especifica trueoverwrite , el blob existente se eliminará y se volverá a crear, en caso de que existan datos en el blob. Si se especifica falseoverwrite , los nuevos datos se anexarán al blob existente.

Parámetros:

overwrite - Si se debe eliminar y volver a crear un blob existente, deben existir datos en el blob.

Devoluciones:

Objeto BlobOutputStream que se usa para escribir datos en el blob.

getBlobOutputStream

public BlobOutputStream getBlobOutputStream(AppendBlobRequestConditions requestConditions)

Crea y abre un flujo de salida para escribir datos en el blob en anexos.

Parámetros:

requestConditions - Objeto BlobRequestConditions que representa las condiciones de acceso del blob.

Devoluciones:

Objeto BlobOutputStream que se usa para escribir datos en el blob.

getCustomerProvidedKeyClient

public AppendBlobClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

Crea un nuevo AppendBlobClient con el customerProvidedKey especificado.

Invalidaciones:

AppendBlobClient.getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

Parámetros:

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

Devoluciones:

con AppendBlobClient el especificado customerProvidedKey.

getEncryptionScopeClient

public AppendBlobClient getEncryptionScopeClient(String encryptionScope)

Crea un nuevo AppendBlobClient con el encryptionScope especificado.

Invalidaciones:

AppendBlobClient.getEncryptionScopeClient(String encryptionScope)

Parámetros:

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

Devoluciones:

con AppendBlobClient el especificado encryptionScope.

getMaxAppendBlockBytes

public int getMaxAppendBlockBytes()

Obtenga 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 void 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();
 System.out.println("Sealed AppendBlob");

sealWithResponse

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

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));
 Context context = new Context("key", "value");

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

Parámetros:

timeout - Valor de tiempo de espera opcional más allá del cual se generará un RuntimeException .
context - Contexto adicional que se pasa a través de la canalización Http durante la llamada al servicio.

Devoluciones:

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

Se aplica a