Freigeben über


AppendBlobAsyncClient Klasse

public final class AppendBlobAsyncClient
extends BlobAsyncClientBase

Client an ein Anfügeblob. Sie kann nur über oder buildAppendBlobAsyncClient() über die -Methode getAppendBlobAsyncClient()instanziiert werden. Diese Klasse enthält keinen Zustand für ein bestimmtes Blob, sondern ist stattdessen eine bequeme Möglichkeit, geeignete Anforderungen an die Ressource für den Dienst zu senden.

Dieser Client enthält Vorgänge für ein Blob. Vorgänge für einen Container sind in BlobContainerAsyncClientverfügbar, und Vorgänge für den Dienst sind auf BlobServiceAsyncClientverfügbar.

Weitere Informationen finden Sie in der Azure-Dokumentation .

Beachten Sie, dass dieser Client ein asynchroner Client ist, der reaktive Antworten vom Spring Reactor Core-Projekt (https://projectreactor.io/) zurückgibt. Wenn Sie die Methoden in diesem Client aufrufen, wird der eigentliche Netzwerkvorgang ERST gestartet, wenn .subscribe() für die reaktive Antwort aufgerufen wird. Sie können einfach eine dieser Antworten über Mono#toFuture()in ein CompletableFuture-Objekt konvertieren.

Feldzusammenfassung

Modifizierer und Typ Feld und Beschreibung
static final int MAX_APPEND_BLOCK_BYTES

Als veraltet markiert

Verwenden Sie getMaxAppendBlockBytes().

Gibt die maximale Anzahl von Bytes an, die in einem Aufruf zum Anfügenvon Block gesendet werden können.

static final int MAX_BLOCKS

Als veraltet markiert

Verwenden Sie getMaxBlocks().

Gibt die maximale Anzahl von Blöcken an, die in einem Anfügeblob zulässig sind.

Methodenzusammenfassung

Modifizierer und Typ Methode und Beschreibung
Mono<AppendBlobItem> appendBlock(Flux<ByteBuffer> data, long length)

Committent einen neuen Datenblock an das Ende des vorhandenen Anfügeblobs.

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

Committent einen neuen Datenblock aus einem anderen Blob an das Ende dieses Anfügeblobs.

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

Committent einen neuen Datenblock aus einem anderen Blob an das Ende dieses Anfügeblobs.

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

Committent einen neuen Datenblock aus einem anderen Blob an das Ende dieses Anfügeblobs.

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

Committ einen neuen Datenblock an das Ende des vorhandenen Anfügeblobs.

Mono<AppendBlobItem> create()

Erstellt ein Anfügeblob mit 0 Längen.

Mono<AppendBlobItem> create(boolean overwrite)

Erstellt ein Anfügeblob mit 0 Längen.

Mono<AppendBlobItem> createIfNotExists()

Erstellt ein Anfügeblob mit 0 Längen, wenn es nicht vorhanden ist.

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

Erstellt ein Anfügeblob mit 0 Längen, wenn es nicht vorhanden ist.

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

Erstellt ein Anfügeblob mit 0 Längen.

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

Erstellt ein Anfügeblob mit 0 Längen.

AppendBlobAsyncClient getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

Erstellt einen neuen AppendBlobAsyncClient mit dem angegebenen customerProvidedKey.

AppendBlobAsyncClient getEncryptionScopeAsyncClient(String encryptionScope)

Erstellt einen neuen AppendBlobAsyncClient mit dem angegebenen encryptionScope.

int getMaxAppendBlockBytes()

Rufen Sie die maximale Anzahl von Anfügeblockbytes basierend auf der verwendeten Dienstversion ab.

int getMaxBlocks()

Rufen Sie die maximale Anzahl von Blöcken ab, die in einem Anfügeblob zulässig sind.

Mono<Void> seal()

Versiegelt ein Anfügeblob, sodass es schreibgeschützt ist.

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

Versiegelt ein Anfügeblob, sodass es schreibgeschützt ist.

Geerbte Methoden von BlobAsyncClientBase

Geerbte Methoden von java.lang.Object

Felddetails

MAX_APPEND_BLOCK_BYTES

@Deprecated
public static final int MAX_APPEND_BLOCK_BYTES

Als veraltet markiert

Verwenden Sie getMaxAppendBlockBytes().

Gibt die maximale Anzahl von Bytes an, die in einem Aufruf von appendBlock gesendet werden können.

MAX_BLOCKS

@Deprecated
public static final int MAX_BLOCKS

Als veraltet markiert

Verwenden Sie getMaxBlocks().

Gibt die maximale Anzahl von Blöcken an, die in einem Anfügeblob zulässig sind.

Details zur Methode

appendBlock

public Mono appendBlock(Flux data, long length)

Committent einen neuen Datenblock an das Ende des vorhandenen Anfügeblobs.

Beachten Sie, dass die übergebenen Daten wiedergegeben werden müssen, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux muss bei jedem Abonnieren die gleichen Daten erzeugen. Für Dienstversionen 2022-11-02 und höher beträgt die maximale Blockgröße 100 MB. Bei früheren Versionen beträgt die maximale Blockgröße 4 MB. Weitere Informationen finden Sie in der Azure-Dokumentation.

Codebeispiele

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

Parameter:

data - Die Daten, die in das Blob geschrieben werden sollen. Beachten Sie, dass dies Flux wiederverspielbar sein muss, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Der Flux muss bei jeder abonnierten abonnierten Datei die gleichen Daten erzeugen.
length - Die genaue Länge der Daten. Es ist wichtig, dass dieser Wert genau mit der Länge der von ausgegebenen FluxDaten übereinstimmt.

Gibt zurück:

Mono mit den Informationen des Anfügeblobvorgangs.

appendBlockFromUrl

public Mono appendBlockFromUrl(String sourceUrl, BlobRange sourceRange)

Committent einen neuen Datenblock aus einem anderen Blob an das Ende dieses Anfügeblobs.

Codebeispiele

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

Parameter:

sourceUrl - Die URL des Blobs, das die Quelle der Kopie sein wird. Ein Quellblob im selben Speicherkonto kann über einen freigegebenen Schlüssel authentifiziert werden. Wenn die Quelle jedoch ein Blob in einem anderen Konto ist, muss das Quellblob entweder öffentlich sein oder über eine Shared Access Signature authentifiziert werden. Wenn das Quellblob öffentlich ist, ist keine Authentifizierung erforderlich, um den Vorgang auszuführen.
sourceRange - Die zu kopierende Quelle BlobRange .

Gibt zurück:

Mono mit den Informationen des Anfügeblobvorgangs.

appendBlockFromUrlWithResponse

public Mono> appendBlockFromUrlWithResponse(AppendBlobAppendBlockFromUrlOptions options)

Committent einen neuen Datenblock aus einem anderen Blob an das Ende dieses Anfügeblobs.

Codebeispiele

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

Parameter:

options - Parameter für den Vorgang.

Gibt zurück:

Eine Mono , Response<T> die enthält, deren value Anfügeblobvorgang enthält.

appendBlockFromUrlWithResponse

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

Committent einen neuen Datenblock aus einem anderen Blob an das Ende dieses Anfügeblobs.

Codebeispiele

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

Parameter:

sourceUrl - Die URL des Blobs, das die Quelle der Kopie sein wird. Ein Quellblob im selben Speicherkonto kann über einen freigegebenen Schlüssel authentifiziert werden. Wenn die Quelle jedoch ein Blob in einem anderen Konto ist, muss das Quellblob entweder öffentlich sein oder über eine Shared Access Signature authentifiziert werden. Wenn das Quellblob öffentlich ist, ist keine Authentifizierung erforderlich, um den Vorgang auszuführen.
sourceRange - BlobRange
sourceContentMD5 - Ein MD5-Hash des Blockinhalts aus dem Quellblob. Wenn angegeben, berechnet der Dienst den MD5 der empfangenen Daten und schlägt die Anforderung fehl, wenn er nicht mit dem bereitgestellten MD5 übereinstimmt.
destRequestConditions - AppendBlobRequestConditions
sourceRequestConditions - BlobRequestConditions

Gibt zurück:

Eine Mono , Response<T> die enthält, deren value Anfügeblobvorgang enthält.

appendBlockWithResponse

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

Committent einen neuen Datenblock an das Ende des vorhandenen Anfügeblobs.

Beachten Sie, dass die übergebenen Daten wiedergegeben werden müssen, wenn Wiederholungsversuche aktiviert sind (Standard). Anders ausgedrückt: Die Flux muss jedes Mal dieselben Daten erzeugen, wenn sie abonniert werden. Für Dienstversionen 2022-11-02 und höher beträgt die maximale Blockgröße 100 MB. Bei früheren Versionen beträgt die maximale Blockgröße 4 MB. Weitere Informationen finden Sie in der Azure-Dokumentation.

Codebeispiele

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

Parameter:

data - Die Daten, die in das Blob geschrieben werden sollen. Beachten Sie, dass diese Flux wiedergabefähig sein muss, wenn Wiederholungen aktiviert sind (Standard). Anders ausgedrückt: Der Flux muss jedes Mal dieselben Daten erzeugen, wenn er abonniert wird.
length - Die genaue Länge der Daten. Es ist wichtig, dass dieser Wert genau mit der Länge der von ausgegebenen FluxDaten übereinstimmt.
contentMd5 - Ein MD5-Hash des Blockinhalts. Mithilfe des Hashs wird die Integrität des Blocks während der Übertragung überprüft. Bei Angabe dieses Headers vergleicht der Speicherdienst den Hash des eingegangenen Inhalts mit diesem Headerwert. Beachten Sie, dass dieser MD5-Hash nicht mit dem BLOB gespeichert wird. Wenn die beiden Hashes nicht übereinstimmen, schlägt der Vorgang fehl.
appendBlobRequestConditions - AppendBlobRequestConditions

Gibt zurück:

Eine Mono , Response<T> der den value Anfügeblobvorgang enthält.

create

public Mono create()

Erstellt ein Anfügeblob mit 0 Längen. Rufen Sie appendBlock auf, um Daten an ein Anfügeblob anzufügen. Standardmäßig überschreibt diese Methode kein vorhandenes Blob.

Codebeispiele

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

Gibt zurück:

Ein Mono , der die Informationen des erstellten angefügten Blobs enthält.

create

public Mono create(boolean overwrite)

Erstellt ein Anfügeblob mit 0 Längen. Rufen Sie appendBlock auf, um Daten an ein Anfügeblob anzufügen.

Codebeispiele

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

Parameter:

overwrite - Ob überschrieben werden soll, sollten Daten im Blob vorhanden sein.

Gibt zurück:

Ein Mono , der die Informationen des erstellten angefügten Blobs enthält.

createIfNotExists

public Mono createIfNotExists()

Erstellt ein Anfügeblob mit 0 Längen, wenn es nicht vorhanden ist. Rufen Sie appendBlock auf, um Daten an ein Anfügeblob anzufügen.

Codebeispiele

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

Gibt zurück:

Eine reaktive Antwort Mono , die die Vervollständigung signalisiert. AppendBlobItem enthält die Informationen des erstellten angefügten Blobs.

createIfNotExistsWithResponse

public Mono> createIfNotExistsWithResponse(AppendBlobCreateOptions options)

Erstellt ein Anfügeblob mit 0 Längen, wenn es nicht vorhanden ist. Rufen Sie appendBlock auf, um Daten an ein Anfügeblob anzufügen.

Codebeispiele

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.");
         }
     });

Parameter:

Gibt zurück:

Eine Mono , die signalisierende Vervollständigung enthält Response<T> , deren value Informationen AppendBlobItem zum Anfügeblob enthält. Wenn Response<T>status Code 201 ist, wurde erfolgreich ein neues Seitenblob erstellt. Wenn status Code 409 ist, ist an diesem Speicherort bereits ein Anfügeblob vorhanden.

createWithResponse

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

Erstellt ein Anfügeblob mit 0 Längen. Rufen Sie appendBlock auf, um Daten an ein Anfügeblob anzufügen.

Um das Überschreiben zu vermeiden, übergeben Sie "*" an setIfNoneMatch(String ifNoneMatch).

Codebeispiele

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

Parameter:

headers - BlobHttpHeaders
metadata - Metadaten, die dem Blob zugeordnet werden sollen. Wenn in einem Metadatenschlüssel oder -wert führende oder nachfolgende Leerzeichen vorhanden sind, muss er entfernt oder codiert werden.
requestConditions - BlobRequestConditions

Gibt zurück:

Ein Mono , Response<T> dessen das value erstellte angefügte Blob enthält.

createWithResponse

public Mono> createWithResponse(AppendBlobCreateOptions options)

Erstellt ein Anfügeblob mit 0 Längen. Rufen Sie appendBlock auf, um Daten an ein Anfügeblob anzufügen.

Um das Überschreiben zu vermeiden, übergeben Sie "*" an setIfNoneMatch(String ifNoneMatch).

Codebeispiele

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

Parameter:

Gibt zurück:

Ein Mono , Response<T> dessen das value erstellte angefügte Blob enthält.

getCustomerProvidedKeyAsyncClient

public AppendBlobAsyncClient getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

Erstellt einen neuen AppendBlobAsyncClient mit dem angegebenen customerProvidedKey.

Überschreibt:

AppendBlobAsyncClient.getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

Parameter:

customerProvidedKey - für CustomerProvidedKey das Blob übergeben null , um keinen vom Kunden bereitgestellten Schlüssel zu verwenden.

Gibt zurück:

a AppendBlobAsyncClient mit dem angegebenen customerProvidedKey.

getEncryptionScopeAsyncClient

public AppendBlobAsyncClient getEncryptionScopeAsyncClient(String encryptionScope)

Erstellt einen neuen AppendBlobAsyncClient mit dem angegebenen encryptionScope.

Überschreibt:

AppendBlobAsyncClient.getEncryptionScopeAsyncClient(String encryptionScope)

Parameter:

encryptionScope - der Verschlüsselungsbereich für das Blob, übergeben null , um keinen Verschlüsselungsbereich zu verwenden.

Gibt zurück:

a AppendBlobAsyncClient mit dem angegebenen encryptionScope.

getMaxAppendBlockBytes

public int getMaxAppendBlockBytes()

Rufen Sie die maximale Anzahl von Anfügeblockbytes basierend auf der verwendeten Dienstversion ab. Die Dienstversionen 2022-11-02 und höher unterstützen das Hochladen von Blockbytes bis zu 100 MB, alle älteren Dienstversionen unterstützen bis zu 4 MB.

Gibt zurück:

die maximale Anzahl von Blockbytes, die basierend auf der Dienstversion hochgeladen werden können.

getMaxBlocks

public int getMaxBlocks()

Rufen Sie die maximale Anzahl von Blöcken ab, die in einem Anfügeblob zulässig sind.

Gibt zurück:

die maximale Anzahl von Blöcken, die in ein Anfügeblob hochgeladen werden können.

seal

public Mono seal()

Versiegelt ein Anfügeblob, sodass es schreibgeschützt ist. Bei nachfolgenden Anfügevorgängen tritt ein Fehler auf.

Codebeispiele

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

Gibt zurück:

Abschluss einer reaktiven Antwortsignalisierung.

sealWithResponse

public Mono> sealWithResponse(AppendBlobSealOptions options)

Versiegelt ein Anfügeblob, sodass es schreibgeschützt ist. Bei nachfolgenden Anfügevorgängen tritt ein Fehler auf.

Codebeispiele

AppendBlobRequestConditions requestConditions = new AppendBlobRequestConditions().setLeaseId(leaseId)
     .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));

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

Parameter:

Gibt zurück:

Abschluss einer reaktiven Antwortsignalisierung.

Gilt für: