AppendBlobClient クラス
- java.
lang. Object - com.
azure. storage. blob. specialized. BlobClientBase - com.
azure. storage. blob. specialized. AppendBlobClient
- com.
- com.
public final class AppendBlobClient
extends BlobClientBase
追加 BLOB へのクライアント。 インスタンス化できるのは、 メソッド getAppendBlobClient()または を介SpecializedBlobClientBuilderしてのみです。 このクラスは特定の BLOB に関する状態を保持しませんが、代わりにサービス上のリソースに適切な要求を送信する便利な方法です。
このクライアントには、BLOB に対する操作が含まれています。 コンテナーに対する操作は で BlobContainerClient使用でき、サービスに対する操作は で BlobServiceClient使用できます。
詳細については、 Azure Docs を参照してください。
フィールドの概要
修飾子と型 | フィールドと説明 |
---|---|
static final int |
MAX_APPEND_BLOCK_BYTES
非推奨
を使用します getMaxAppendBlockBytes()。
Block を追加する呼び出しで送信できる最大バイト数を示します |
static final int |
MAX_BLOCKS
非推奨
を使用します getMaxBlocks()。
追加 BLOB で許可されるブロックの最大数を示します。 |
メソッドの概要
メソッドの継承元: BlobClientBase
メソッドの継承元: 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 AppendBlobItem appendBlock(InputStream data, long length)
既存の追加 BLOB の末尾に新しいデータ ブロックをコミットします。
再試行が有効になっている場合 (既定値) は、渡されたデータを再生可能にする必要があることに注意してください。 つまり、 Flux
はサブスクライブされるたびに同じデータを生成する必要があります。 サービス バージョン 2022-11-02 以降の場合、最大ブロック サイズは 100 MB です。 以前のバージョンでは、最大ブロック サイズは 4 MB です。 詳細については、 Azure Docs に関するページを参照してください。
コード サンプル
System.out.printf("AppendBlob has %d committed blocks%n",
client.appendBlock(data, length).getBlobCommittedBlockCount());
パラメーター:
Flux
出力されるデータの長さと正確に一致することが重要です。
戻り値:
appendBlockFromUrl
public AppendBlobItem appendBlockFromUrl(String sourceUrl, BlobRange sourceRange)
別の BLOB からこの追加 BLOB の末尾に新しいデータ ブロックをコミットします。
コード サンプル
System.out.printf("AppendBlob has %d committed blocks%n",
client.appendBlockFromUrl(sourceUrl, new BlobRange(offset, count)).getBlobCommittedBlockCount());
パラメーター:
戻り値:
appendBlockFromUrlWithResponse
public Response
別の BLOB からこの追加 BLOB の末尾に新しいデータ ブロックをコミットします。
コード サンプル
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());
パラメーター:
戻り値:
appendBlockFromUrlWithResponse
public Response
別の BLOB からこの追加 BLOB の末尾に新しいデータ ブロックをコミットします。
コード サンプル
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());
パラメーター:
戻り値:
appendBlockWithResponse
public Response
新しいデータ ブロックを既存の追加 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);
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());
パラメーター:
Flux
出力されるデータの長さと正確に一致することが重要です。
戻り値:
create
public AppendBlobItem create()
0 長の追加 BLOB を作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。 既定では、このメソッドは既存の BLOB を上書きしません。
コード サンプル
System.out.printf("Created AppendBlob at %s%n", client.create().getLastModified());
戻り値:
create
public AppendBlobItem create(boolean overwrite)
0 長の追加 BLOB を作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。
コード サンプル
boolean overwrite = false; // Default value
System.out.printf("Created AppendBlob at %s%n", client.create(overwrite).getLastModified());
パラメーター:
戻り値:
createIfNotExists
public AppendBlobItem createIfNotExists()
存在しない場合は、0 長の追加 BLOB を作成します。 appendBlock を呼び出して、追加 BLOB にデータを追加します。
コード サンプル
client.createIfNotExists();
System.out.println("Created AppendBlob");
戻り値:
createIfNotExistsWithResponse
public Response
存在しない場合は、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("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());
}
パラメーター:
戻り値:
createWithResponse
public Response
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));
Context context = new Context("key", "value");
System.out.printf("Created AppendBlob at %s%n",
client.createWithResponse(headers, metadata, requestConditions, timeout, context).getValue()
.getLastModified());
パラメーター:
戻り値:
createWithResponse
public Response
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("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());
パラメーター:
戻り値:
getBlobOutputStream
public BlobOutputStream getBlobOutputStream()
出力ストリームを作成して開き、追加 BLOB にデータを書き込みます。 サービスに BLOB が既に存在する場合は、新しいデータが既存の BLOB に追加されます。
戻り値:
getBlobOutputStream
public BlobOutputStream getBlobOutputStream(boolean overwrite)
出力ストリームを作成して開き、追加 BLOB にデータを書き込みます。 overwrite を指定すると true
、既存の BLOB が削除され、再作成されます。BLOB にデータが存在する必要があります。 overwrite を指定すると false
、新しいデータが既存の BLOB に追加されます。
パラメーター:
戻り値:
getBlobOutputStream
public BlobOutputStream getBlobOutputStream(AppendBlobRequestConditions requestConditions)
出力ストリームを作成して開き、追加 BLOB にデータを書き込みます。
パラメーター:
戻り値:
getCustomerProvidedKeyClient
public AppendBlobClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)
指定した AppendBlobClient を使用して、新しい customerProvidedKey
を作成します。
上書き:
AppendBlobClient.getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)パラメーター:
戻り値:
customerProvidedKey
を持つ 。getEncryptionScopeClient
public AppendBlobClient getEncryptionScopeClient(String encryptionScope)
指定した AppendBlobClient を使用して、新しい encryptionScope
を作成します。
上書き:
AppendBlobClient.getEncryptionScopeClient(String encryptionScope)パラメーター:
null
して暗号化スコープを使用しません。
戻り値:
encryptionScope
を持つ 。getMaxAppendBlockBytes
public int getMaxAppendBlockBytes()
使用されているサービス バージョンに基づいて、追加ブロックバイトの最大数を取得します。 サービス バージョン 2022-11-02 以降では、最大 100 MB のブロック バイトのアップロードがサポートされており、すべての古いサービス バージョンでは最大 4 MB がサポートされています。
戻り値:
getMaxBlocks
public int getMaxBlocks()
追加 BLOB で許可されるブロックの最大数を取得します。
戻り値:
seal
public void seal()
追加 BLOB をシールし、読み取り専用にします。 後続の追加は失敗します。
コード サンプル
client.seal();
System.out.println("Sealed AppendBlob");
sealWithResponse
public Response
追加 BLOB をシールし、読み取り専用にします。 後続の追加は失敗します。
コード サンプル
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");
パラメーター:
戻り値:
適用対象
Azure SDK for Java