次の方法で共有


AppendBlobAsyncClient クラス

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 で許可されるブロックの最大数を示します。

メソッドの概要

修飾子と型 メソッドと説明
Mono<AppendBlobItem> appendBlock(Flux<ByteBuffer> data, long length)

既存の追加 BLOB の末尾に新しいデータ ブロックをコミットします。

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

別の BLOB からこの追加 BLOB の末尾に新しいデータ ブロックをコミットします。

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

別の BLOB からこの追加 BLOB の末尾に新しいデータ ブロックをコミットします。

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

別の BLOB からこの追加 BLOB の末尾に新しいデータ ブロックをコミットします。

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

既存の追加 BLOB の末尾に新しいデータ ブロックをコミットします。

Mono<AppendBlobItem> create()

長さ 0 の追加 BLOB を作成します。

Mono<AppendBlobItem> create(boolean overwrite)

長さ 0 の追加 BLOB を作成します。

Mono<AppendBlobItem> createIfNotExists()

長さ 0 の追加 BLOB が存在しない場合は作成します。

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

長さ 0 の追加 BLOB が存在しない場合は作成します。

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

長さ 0 の追加 BLOB を作成します。

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

長さ 0 の追加 BLOB を作成します。

AppendBlobAsyncClient getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

指定した AppendBlobAsyncClient を使用して、新しい customerProvidedKey を作成します。

AppendBlobAsyncClient getEncryptionScopeAsyncClient(String encryptionScope)

指定した AppendBlobAsyncClient を使用して、新しい encryptionScope を作成します。

int getMaxAppendBlockBytes()

使用されているサービス のバージョンに基づいて、追加ブロックバイトの最大数を取得します。

int getMaxBlocks()

追加 BLOB で許可されるブロックの最大数を取得します。

Mono<Void> seal()

追加 BLOB をシールし、読み取り専用にします。

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

追加 BLOB をシールし、読み取り専用にします。

メソッドの継承元: BlobAsyncClientBase

メソッドの継承元: java.lang.Object

フィールドの詳細

MAX_APPEND_BLOCK_BYTES

@Deprecated
public static final int MAX_APPEND_BLOCK_BYTES

非推奨

を使用します getMaxAppendBlockBytes()

appendBlock の呼び出しで送信できる最大バイト数を示します。

MAX_BLOCKS

@Deprecated
public static final int MAX_BLOCKS

非推奨

を使用します getMaxBlocks()

追加 BLOB で許可されるブロックの最大数を示します。

メソッドの詳細

appendBlock

public Mono appendBlock(Flux data, long length)

既存の追加 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()));

パラメーター:

data - BLOB に書き込むデータ。 再試行が有効になっている場合 (既定値) は、これは Flux 再生可能である必要があることに注意してください。 言い換えると、Flux はサブスクライブするたびに同じデータを生成する必要があります。
length - データの正確な長さ。 この値は、 によって Flux出力されるデータの長さと正確に一致することが重要です。

戻り値:

Mono 追加 BLOB 操作の情報を格納しています。

appendBlockFromUrl

public Mono appendBlockFromUrl(String sourceUrl, BlobRange sourceRange)

別の BLOB からこの追加 BLOB の末尾に新しいデータ ブロックをコミットします。

コード サンプル

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

パラメーター:

sourceUrl - コピーのソースとなる BLOB の URL。 同じストレージ アカウント内のソース BLOB は、共有キーを使用して認証できます。 ただし、ソースが別のアカウントの BLOB の場合、ソース BLOB はパブリックであるか、共有アクセス署名を介して認証される必要があります。 ソース BLOB がパブリックの場合、操作を実行するために認証は必要ありません。
sourceRange - コピーするソース BlobRange

戻り値:

Mono 追加 BLOB 操作の情報を格納しています。

appendBlockFromUrlWithResponse

public Mono> appendBlockFromUrlWithResponse(AppendBlobAppendBlockFromUrlOptions options)

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

パラメーター:

options - 操作のパラメーター。

戻り値:

Mono追加 BLOB 操作をResponse<T>value含む を含む 。

appendBlockFromUrlWithResponse

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

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

パラメーター:

sourceUrl - コピーのソースとなる BLOB の URL。 同じストレージ アカウント内のソース BLOB は、共有キーを使用して認証できます。 ただし、ソースが別のアカウントの BLOB の場合、ソース BLOB はパブリックであるか、共有アクセス署名を介して認証される必要があります。 ソース BLOB がパブリックの場合、操作を実行するために認証は必要ありません。
sourceRange - BlobRange
sourceContentMD5 - ソース BLOB からのブロック コンテンツの MD5 ハッシュ。 指定した場合、サービスは受信したデータの MD5 を計算し、指定された MD5 と一致しない場合は要求を失敗させます。
destRequestConditions - AppendBlobRequestConditions
sourceRequestConditions - BlobRequestConditions

戻り値:

Mono追加 BLOB 操作をResponse<T>value含む を含む 。

appendBlockWithResponse

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

既存の追加 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()));

パラメーター:

data - BLOB に書き込むデータ。 再試行が有効になっている場合 (既定値) は、これは Flux 再生可能である必要があることに注意してください。 言い換えると、Flux はサブスクライブするたびに同じデータを生成する必要があります。
length - データの正確な長さ。 この値は、 によって Flux出力されるデータの長さと正確に一致することが重要です。
contentMd5 - ブロックのコンテンツの MD5 ハッシュ。 このハッシュは、転送時のブロックの整合性を確認するために使用します。 このヘッダーを指定すると、ストレージ サービスによって、到達したコンテンツのハッシュと、このヘッダー値が比較されます。 この MD5 ハッシュは BLOB と共に保存されません。 2 つのハッシュが一致しない場合、操作は失敗します。
appendBlobRequestConditions - AppendBlobRequestConditions

戻り値:

Mono追加 BLOB 操作をResponse<T>value含む を含む 。

create

public Mono create()

長さ 0 の追加 BLOB を作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。 既定では、このメソッドは既存の BLOB を上書きしません。

コード サンプル

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

戻り値:

Mono作成された追加された BLOB の情報を格納している 。

create

public Mono create(boolean overwrite)

長さ 0 の追加 BLOB を作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。

コード サンプル

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

パラメーター:

overwrite - を上書きするかどうか。BLOB にデータが存在する必要があります。

戻り値:

Mono作成された追加された BLOB の情報を格納している 。

createIfNotExists

public Mono createIfNotExists()

長さ 0 の追加 BLOB が存在しない場合は作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。

コード サンプル

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

戻り値:

反応性応答 Mono シグナリングの完了。 AppendBlobItem には、作成された追加された BLOB の情報が含まれます。

createIfNotExistsWithResponse

public Mono> createIfNotExistsWithResponse(AppendBlobCreateOptions options)

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

パラメーター:

戻り値:

Monoシグナル補完をResponse<T>含む 。そのvalueには、追加 BLOB に関する情報を含む が含まれますAppendBlobItem。 の状態コードが 201 の場合 Response<T>、新しいページ BLOB が正常に作成されました。 状態コードが 409 の場合は、この場所に追加 BLOB が既に存在します。

createWithResponse

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

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

パラメーター:

headers - BlobHttpHeaders
metadata - BLOB に関連付けるメタデータ。 メタデータ キーまたは値に先頭または末尾の空白がある場合は、削除またはエンコードする必要があります。
requestConditions - BlobRequestConditions

戻り値:

Response<T> value作成Monoされた追加された BLOB を含む を格納している 。

createWithResponse

public Mono> createWithResponse(AppendBlobCreateOptions options)

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

パラメーター:

戻り値:

Response<T> value作成Monoされた追加された BLOB を含む を格納している 。

getCustomerProvidedKeyAsyncClient

public AppendBlobAsyncClient getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

指定した AppendBlobAsyncClient を使用して、新しい customerProvidedKey を作成します。

上書き:

AppendBlobAsyncClient.getCustomerProvidedKeyAsyncClient(CustomerProvidedKey customerProvidedKey)

パラメーター:

customerProvidedKey - BLOB の には CustomerProvidedKey 、 を渡 null して、顧客が指定したキーを使用しません。

戻り値:

指定 AppendBlobAsyncClient した customerProvidedKeyを持つ 。

getEncryptionScopeAsyncClient

public AppendBlobAsyncClient getEncryptionScopeAsyncClient(String encryptionScope)

指定した AppendBlobAsyncClient を使用して、新しい encryptionScope を作成します。

上書き:

AppendBlobAsyncClient.getEncryptionScopeAsyncClient(String encryptionScope)

パラメーター:

encryptionScope - BLOB の暗号化スコープを渡して null 、暗号化スコープを使用しません。

戻り値:

指定 AppendBlobAsyncClient した encryptionScopeを持つ 。

getMaxAppendBlockBytes

public int getMaxAppendBlockBytes()

使用されているサービス のバージョンに基づいて、追加ブロックバイトの最大数を取得します。 サービス バージョン 2022-11-02 以降では、最大 100 MB のブロック バイトのアップロードがサポートされており、すべての古いサービス バージョンでは最大 4 MB がサポートされています。

戻り値:

サービス のバージョンに基づいてアップロードできるブロック バイトの最大数。

getMaxBlocks

public int getMaxBlocks()

追加 BLOB で許可されるブロックの最大数を取得します。

戻り値:

追加 BLOB にアップロードできるブロックの最大数。

seal

public Mono seal()

追加 BLOB をシールし、読み取り専用にします。 後続の追加は失敗します。

コード サンプル

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

戻り値:

事後応答シグナル伝達完了。

sealWithResponse

public Mono> sealWithResponse(AppendBlobSealOptions options)

追加 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"));

パラメーター:

戻り値:

事後応答シグナル伝達完了。

適用対象