AppendBlobAsyncClient クラス
- java.
lang. Object - com.
azure. storage. blob. specialized. BlobAsyncClientBase - com.
azure. storage. blob. specialized. AppendBlobAsyncClient
- com.
- com.
public final class AppendBlobAsyncClient
extends BlobAsyncClientBase
追加 BLOB へのクライアント。 インスタンス化できるのは、 メソッド getAppendBlobAsyncClient()または を介buildAppendBlobAsyncClient()してのみです。 このクラスは特定の BLOB に関する状態を保持しませんが、代わりにサービス上のリソースに適切な要求を送信する便利な方法です。
このクライアントには、BLOB に対する操作が含まれています。 コンテナーに対する操作は で BlobContainerAsyncClient使用でき、サービスに対する操作は で BlobServiceAsyncClient使用できます。
詳細については、 Azure Docs を参照してください。
このクライアントは、Spring Reactor Core プロジェクト (https://projectreactor.io/) から反応性応答を返す非同期クライアントであることに注意してください。 このクライアントで メソッドを呼び出すと、リアクティブ応答で が呼び出されるまで.subscribe()
、実際のネットワーク操作は開始されません。 これらの応答のいずれかを を使用してMono#toFuture()、単に CompletableFuture オブジェクトに変換できます。
フィールドの概要
修飾子と型 | フィールドと説明 |
---|---|
static final int |
MAX_APPEND_BLOCK_BYTES
非推奨
を使用します getMaxAppendBlockBytes()。
Block を追加する呼び出しで送信できる最大バイト数を示します |
static final int |
MAX_BLOCKS
非推奨
を使用します getMaxBlocks()。
追加 BLOB で許可されるブロックの最大数を示します。 |
メソッドの概要
メソッドの継承元: BlobAsyncClientBase
メソッドの継承元: java.lang.Object
フィールドの詳細
MAX_APPEND_BLOCK_BYTES
@Deprecated
public static final int MAX_APPEND_BLOCK_BYTES
非推奨
appendBlock の呼び出しで送信できる最大バイト数を示します。
MAX_BLOCKS
@Deprecated
public static final int MAX_BLOCKS
非推奨
追加 BLOB で許可されるブロックの最大数を示します。
メソッドの詳細
appendBlock
public Mono
既存の追加 BLOB の末尾に新しいデータ ブロックをコミットします。
再試行が有効になっている場合 (既定値) は、渡されたデータを再生可能にする必要があることに注意してください。 つまり、 Flux
はサブスクライブされるたびに同じデータを生成する必要があります。 サービス バージョン 2022-11-02 以降の場合、最大ブロック サイズは 100 MB です。 以前のバージョンでは、最大ブロック サイズは 4 MB です。 詳細については、 Azure Docs に関するページを参照してください。
コード サンプル
client.appendBlock(data, length).subscribe(response ->
System.out.printf("AppendBlob has %d committed blocks%n", response.getBlobCommittedBlockCount()));
パラメーター:
Flux
再生可能である必要があることに注意してください。 言い換えると、Flux はサブスクライブするたびに同じデータを生成する必要があります。
Flux
出力されるデータの長さと正確に一致することが重要です。
戻り値:
appendBlockFromUrl
public Mono
別の BLOB からこの追加 BLOB の末尾に新しいデータ ブロックをコミットします。
コード サンプル
client.appendBlockFromUrl(sourceUrl, new BlobRange(offset, count)).subscribe(response ->
System.out.printf("AppendBlob has %d committed blocks%n", response.getBlobCommittedBlockCount()));
パラメーター:
戻り値:
appendBlockFromUrlWithResponse
public Mono
別の BLOB からこの追加 BLOB の末尾に新しいデータ ブロックをコミットします。
コード サンプル
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()));
パラメーター:
戻り値:
appendBlockFromUrlWithResponse
public Mono
別の BLOB からこの追加 BLOB の末尾に新しいデータ ブロックをコミットします。
コード サンプル
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()));
パラメーター:
戻り値:
appendBlockWithResponse
public Mono
既存の追加 BLOB の末尾に新しいデータ ブロックをコミットします。
再試行が有効になっている場合 (既定値) は、渡されたデータを再生可能にする必要があることに注意してください。 つまり、 Flux
はサブスクライブされるたびに同じデータを生成する必要があります。 サービス バージョン 2022-11-02 以降の場合、最大ブロック サイズは 100 MB です。 以前のバージョンでは、最大ブロック サイズは 4 MB です。 詳細については、 Azure Docs に関するページを参照してください。
コード サンプル
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()));
パラメーター:
Flux
再生可能である必要があることに注意してください。 言い換えると、Flux はサブスクライブするたびに同じデータを生成する必要があります。
Flux
出力されるデータの長さと正確に一致することが重要です。
戻り値:
create
public Mono
長さ 0 の追加 BLOB を作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。 既定では、このメソッドは既存の BLOB を上書きしません。
コード サンプル
client.create().subscribe(response ->
System.out.printf("Created AppendBlob at %s%n", response.getLastModified()));
戻り値:
create
public Mono
長さ 0 の追加 BLOB を作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。
コード サンプル
boolean overwrite = false; // Default behavior
client.create(overwrite).subscribe(response ->
System.out.printf("Created AppendBlob at %s%n", response.getLastModified()));
パラメーター:
戻り値:
createIfNotExists
public Mono
長さ 0 の追加 BLOB が存在しない場合は作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。
コード サンプル
client.createIfNotExists().subscribe(response ->
System.out.printf("Created AppendBlob at %s%n", response.getLastModified()));
戻り値:
createIfNotExistsWithResponse
public Mono
長さ 0 の追加 BLOB が存在しない場合は作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。
コード サンプル
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.");
}
});
パラメーター:
戻り値:
createWithResponse
public Mono
長さ 0 の追加 BLOB を作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。
上書きされないようにするには、"*" を に setIfNoneMatch(String ifNoneMatch)渡します。
コード サンプル
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()));
パラメーター:
戻り値:
createWithResponse
public Mono
長さ 0 の追加 BLOB を作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。
上書きされないようにするには、"*" を に setIfNoneMatch(String ifNoneMatch)渡します。
コード サンプル
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()));
パラメーター:
戻り値:
getCustomerProvidedKeyAsyncClient
public AppendBlobAsyncClient getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)
指定した AppendBlobAsyncClient を使用して、新しい customerProvidedKey
を作成します。
上書き:
AppendBlobAsyncClient.getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)パラメーター:
戻り値:
customerProvidedKey
を持つ 。getEncryptionScopeAsyncClient
public AppendBlobAsyncClient getEncryptionScopeAsyncClient(String encryptionScope)
指定した AppendBlobAsyncClient を使用して、新しい encryptionScope
を作成します。
上書き:
AppendBlobAsyncClient.getEncryptionScopeAsyncClient(String encryptionScope)パラメーター:
null
、暗号化スコープを使用しません。
戻り値:
encryptionScope
を持つ 。getMaxAppendBlockBytes
public int getMaxAppendBlockBytes()
使用されているサービス のバージョンに基づいて、追加ブロックバイトの最大数を取得します。 サービス バージョン 2022-11-02 以降では、最大 100 MB のブロック バイトのアップロードがサポートされており、すべての古いサービス バージョンでは最大 4 MB がサポートされています。
戻り値:
getMaxBlocks
public int getMaxBlocks()
追加 BLOB で許可されるブロックの最大数を取得します。
戻り値:
seal
public Mono
追加 BLOB をシールし、読み取り専用にします。 後続の追加は失敗します。
コード サンプル
client.seal().subscribe(response -> System.out.println("Sealed AppendBlob"));
戻り値:
sealWithResponse
public Mono
追加 BLOB をシールし、読み取り専用にします。 後続の追加は失敗します。
コード サンプル
AppendBlobRequestConditions requestConditions = new AppendBlobRequestConditions().setLeaseId(leaseId)
.setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
client.sealWithResponse(new AppendBlobSealOptions().setRequestConditions(requestConditions))
.subscribe(response -> System.out.println("Sealed AppendBlob"));
パラメーター:
戻り値:
適用対象
Azure SDK for Java