Class BlobClient
This client is instantiated through BlobClientBuilder
or retrieved via
getBlobClient
.
For operations on a specific blob type (i.e append, block, or page) use
getAppendBlobClient
, getBlockBlobClient
, or
getPageBlobClient
to construct a client that allows blob specific operations.
Please refer to the Azure Docs for more information.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
If a blob is known to be greater than 100MB, using a larger block size will trigger some server-side optimizations.static final int
The number of buffers to use if none is specied on the buffered upload method.static final int
The block size to use if none is specified in parallel operations. -
Constructor Summary
ModifierConstructorDescriptionprotected
BlobClient
(BlobAsyncClient client) Protected constructor for use byBlobClientBuilder
. -
Method Summary
Modifier and TypeMethodDescriptionCreates a newAppendBlobClient
associated with this blob.Creates a newBlockBlobClient
associated with this blob.getCustomerProvidedKeyClient
(CustomerProvidedKey customerProvidedKey) Creates a newBlobClient
with the specifiedcustomerProvidedKey
.getEncryptionScopeClient
(String encryptionScope) Creates a newBlobClient
with the specifiedencryptionScope
.Creates a newPageBlobClient
associated with this blob.getSnapshotClient
(String snapshot) Creates a newBlobClient
linked to thesnapshot
of this blob resource.getVersionClient
(String versionId) Creates a newBlobClient
linked to theversion
of this blob resource.void
upload
(com.azure.core.util.BinaryData data) Creates a new blob.void
upload
(com.azure.core.util.BinaryData data, boolean overwrite) Creates a new blob, or updates the content of an existing blob.void
upload
(InputStream data) Creates a new blob.void
upload
(InputStream data, boolean overwrite) Creates a new blob, or updates the content of an existing blob.void
upload
(InputStream data, long length) Creates a new blob.void
upload
(InputStream data, long length, boolean overwrite) Creates a new blob, or updates the content of an existing blob.void
uploadFromFile
(String filePath) Creates a new block blob.void
uploadFromFile
(String filePath, boolean overwrite) Creates a new block blob, or updates the content of an existing block blob.void
uploadFromFile
(String filePath, ParallelTransferOptions parallelTransferOptions, BlobHttpHeaders headers, Map<String, String> metadata, AccessTier tier, BlobRequestConditions requestConditions, Duration timeout) Creates a new block blob, or updates the content of an existing block blob.com.azure.core.http.rest.Response<BlockBlobItem>
uploadFromFileWithResponse
(BlobUploadFromFileOptions options, Duration timeout, com.azure.core.util.Context context) Creates a new block blob, or updates the content of an existing block blob.com.azure.core.http.rest.Response<BlockBlobItem>
uploadWithResponse
(BlobParallelUploadOptions options, com.azure.core.util.Context context) Deprecated.com.azure.core.http.rest.Response<BlockBlobItem>
uploadWithResponse
(BlobParallelUploadOptions options, Duration timeout, com.azure.core.util.Context context) Creates a new blob, or updates the content of an existing blob.void
uploadWithResponse
(InputStream data, long length, ParallelTransferOptions parallelTransferOptions, BlobHttpHeaders headers, Map<String, String> metadata, AccessTier tier, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Deprecated.Methods inherited from class com.azure.storage.blob.specialized.BlobClientBase
abortCopyFromUrl, abortCopyFromUrlWithResponse, beginCopy, beginCopy, beginCopy, copyFromUrl, copyFromUrlWithResponse, copyFromUrlWithResponse, createSnapshot, createSnapshotWithResponse, delete, deleteIfExists, deleteIfExistsWithResponse, deleteImmutabilityPolicy, deleteImmutabilityPolicyWithResponse, deleteWithResponse, download, downloadContent, downloadContentWithResponse, downloadStream, downloadStreamWithResponse, downloadToFile, downloadToFile, downloadToFileWithResponse, downloadToFileWithResponse, downloadToFileWithResponse, downloadWithResponse, exists, existsWithResponse, generateSas, generateSas, generateUserDelegationSas, generateUserDelegationSas, getAccountInfo, getAccountInfoWithResponse, getAccountName, getAccountUrl, getBlobName, getBlobUrl, getContainerClient, getContainerName, getCustomerProvidedKey, getHttpPipeline, getProperties, getPropertiesWithResponse, getServiceVersion, getSnapshotId, getTags, getTagsWithResponse, getVersionId, isSnapshot, openInputStream, openInputStream, openInputStream, openInputStream, openQueryInputStream, openQueryInputStreamWithResponse, query, queryWithResponse, setAccessTier, setAccessTierWithResponse, setAccessTierWithResponse, setHttpHeaders, setHttpHeadersWithResponse, setImmutabilityPolicy, setImmutabilityPolicyWithResponse, setLegalHold, setLegalHoldWithResponse, setMetadata, setMetadataWithResponse, setTags, setTagsWithResponse, undelete, undeleteWithResponse
-
Field Details
-
BLOB_DEFAULT_UPLOAD_BLOCK_SIZE
public static final int BLOB_DEFAULT_UPLOAD_BLOCK_SIZEThe block size to use if none is specified in parallel operations.- See Also:
-
BLOB_DEFAULT_NUMBER_OF_BUFFERS
public static final int BLOB_DEFAULT_NUMBER_OF_BUFFERSThe number of buffers to use if none is specied on the buffered upload method.- See Also:
-
BLOB_DEFAULT_HTBB_UPLOAD_BLOCK_SIZE
public static final int BLOB_DEFAULT_HTBB_UPLOAD_BLOCK_SIZEIf a blob is known to be greater than 100MB, using a larger block size will trigger some server-side optimizations. If the block size is not set and the size of the blob is known to be greater than 100MB, this value will be used.- See Also:
-
-
Constructor Details
-
BlobClient
Protected constructor for use byBlobClientBuilder
.- Parameters:
client
- the async blob client
-
-
Method Details
-
getSnapshotClient
Creates a newBlobClient
linked to thesnapshot
of this blob resource.- Overrides:
getSnapshotClient
in classBlobClientBase
- Parameters:
snapshot
- the identifier for a specific snapshot of this blob- Returns:
- A
BlobClient
used to interact with the specific snapshot.
-
getVersionClient
Creates a newBlobClient
linked to theversion
of this blob resource.- Overrides:
getVersionClient
in classBlobClientBase
- Parameters:
versionId
- the identifier for a specific version of this blob, passnull
to interact with the latest blob version.- Returns:
- A
BlobClient
used to interact with the specific version.
-
getEncryptionScopeClient
Creates a newBlobClient
with the specifiedencryptionScope
.- Overrides:
getEncryptionScopeClient
in classBlobClientBase
- Parameters:
encryptionScope
- the encryption scope for the blob, passnull
to use no encryption scope.- Returns:
- a
BlobClient
with the specifiedencryptionScope
.
-
getCustomerProvidedKeyClient
Creates a newBlobClient
with the specifiedcustomerProvidedKey
.- Overrides:
getCustomerProvidedKeyClient
in classBlobClientBase
- Parameters:
customerProvidedKey
- theCustomerProvidedKey
for the blob, passnull
to use no customer provided key.- Returns:
- a
BlobClient
with the specifiedcustomerProvidedKey
.
-
getAppendBlobClient
Creates a newAppendBlobClient
associated with this blob.- Returns:
- A
AppendBlobClient
associated with this blob.
-
getBlockBlobClient
Creates a newBlockBlobClient
associated with this blob.- Returns:
- A
BlockBlobClient
associated with this blob.
-
getPageBlobClient
Creates a newPageBlobClient
associated with this blob.- Returns:
- A
PageBlobClient
associated with this blob.
-
upload
Creates a new blob. By default this method will not overwrite an existing blob.- Parameters:
data
- The data to write to the blob. The data must be markable. This is in order to support retries. If the data is not markable, consider opening aBlobOutputStream
and writing to the returned stream. Alternatively, consider wrapping your data source in aBufferedInputStream
to add mark support.
-
upload
Creates a new blob. By default this method will not overwrite an existing blob.- Parameters:
data
- The data to write to the blob. The data must be markable. This is in order to support retries. If the data is not markable, consider opening aBlobOutputStream
and writing to the returned stream. Alternatively, consider wrapping your data source in aBufferedInputStream
to add mark support.length
- The exact length of the data. It is important that this value match precisely the length of the data provided in theInputStream
.
-
upload
Creates a new blob, or updates the content of an existing blob.- Parameters:
data
- The data to write to the blob. The data must be markable. This is in order to support retries. If the data is not markable, consider opening aBlobOutputStream
and writing to the returned stream. Alternatively, consider wrapping your data source in aBufferedInputStream
to add mark support.overwrite
- Whether or not to overwrite, should data exist on the blob.
-
upload
Creates a new blob, or updates the content of an existing blob.- Parameters:
data
- The data to write to the blob. The data must be markable. This is in order to support retries. If the data is not markable, consider opening aBlobOutputStream
and writing to the returned stream. Alternatively, consider wrapping your data source in aBufferedInputStream
to add mark support.length
- The exact length of the data. It is important that this value match precisely the length of the data provided in theInputStream
.overwrite
- Whether or not to overwrite, should data exist on the blob.
-
upload
public void upload(com.azure.core.util.BinaryData data) Creates a new blob. By default this method will not overwrite an existing blob.- Parameters:
data
- The data to write to the blob.
-
upload
public void upload(com.azure.core.util.BinaryData data, boolean overwrite) Creates a new blob, or updates the content of an existing blob.- Parameters:
data
- The data to write to the blob.overwrite
- Whether or not to overwrite, should data exist on the blob.
-
uploadWithResponse
@Deprecated public void uploadWithResponse(InputStream data, long length, ParallelTransferOptions parallelTransferOptions, BlobHttpHeaders headers, Map<String, String> metadata, AccessTier tier, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Deprecated.Creates a new blob, or updates the content of an existing blob.To avoid overwriting, pass "*" to
BlobRequestConditions.setIfNoneMatch(String)
.- Parameters:
data
- The data to write to the blob. The data must be markable. This is in order to support retries. If the data is not markable, consider opening aBlobOutputStream
and writing to the returned stream. Alternatively, consider wrapping your data source in aBufferedInputStream
to add mark support.length
- The exact length of the data. It is important that this value match precisely the length of the data provided in theInputStream
.parallelTransferOptions
-ParallelTransferOptions
used to configure buffered uploading.headers
-BlobHttpHeaders
metadata
- Metadata to associate with the blob. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.tier
-AccessTier
for the destination blob.requestConditions
-BlobRequestConditions
timeout
- An optional timeout value beyond which aRuntimeException
will be raised.context
- Additional context that is passed through the Http pipeline during the service call.
-
uploadWithResponse
@Deprecated public com.azure.core.http.rest.Response<BlockBlobItem> uploadWithResponse(BlobParallelUploadOptions options, com.azure.core.util.Context context) Deprecated.Creates a new blob, or updates the content of an existing blob.To avoid overwriting, pass "*" to
BlobRequestConditions.setIfNoneMatch(String)
.- Parameters:
options
-BlobParallelUploadOptions
context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- Information about the uploaded block blob.
-
uploadWithResponse
public com.azure.core.http.rest.Response<BlockBlobItem> uploadWithResponse(BlobParallelUploadOptions options, Duration timeout, com.azure.core.util.Context context) Creates a new blob, or updates the content of an existing blob.To avoid overwriting, pass "*" to
BlobRequestConditions.setIfNoneMatch(String)
.- Parameters:
options
-BlobParallelUploadOptions
timeout
- An optional timeout value beyond which aRuntimeException
will be raised.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- Information about the uploaded block blob.
-
uploadFromFile
Creates a new block blob. By default this method will not overwrite an existing blob.Code Samples
try { client.uploadFromFile(filePath); System.out.println("Upload from file succeeded"); } catch (UncheckedIOException ex) { System.err.printf("Failed to upload from file %s%n", ex.getMessage()); }
- Parameters:
filePath
- Path of the file to upload- Throws:
UncheckedIOException
- If an I/O error occurs
-
uploadFromFile
Creates a new block blob, or updates the content of an existing block blob.Code Samples
try { boolean overwrite = false; client.uploadFromFile(filePath, overwrite); System.out.println("Upload from file succeeded"); } catch (UncheckedIOException ex) { System.err.printf("Failed to upload from file %s%n", ex.getMessage()); }
- Parameters:
filePath
- Path of the file to uploadoverwrite
- Whether or not to overwrite, should the blob already exist- Throws:
UncheckedIOException
- If an I/O error occurs
-
uploadFromFile
public void uploadFromFile(String filePath, ParallelTransferOptions parallelTransferOptions, BlobHttpHeaders headers, Map<String, String> metadata, AccessTier tier, BlobRequestConditions requestConditions, Duration timeout) Creates a new block blob, or updates the content of an existing block blob.To avoid overwriting, pass "*" to
BlobRequestConditions.setIfNoneMatch(String)
.Code Samples
BlobHttpHeaders headers = new BlobHttpHeaders() .setContentMd5("data".getBytes(StandardCharsets.UTF_8)) .setContentLanguage("en-US") .setContentType("binary"); Map<String, String> metadata = Collections.singletonMap("metadata", "value"); BlobRequestConditions requestConditions = new BlobRequestConditions() .setLeaseId(leaseId) .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3)); Long blockSize = 100L * 1024L * 1024L; // 100 MB; ParallelTransferOptions parallelTransferOptions = new ParallelTransferOptions().setBlockSizeLong(blockSize); try { client.uploadFromFile(filePath, parallelTransferOptions, headers, metadata, AccessTier.HOT, requestConditions, timeout); System.out.println("Upload from file succeeded"); } catch (UncheckedIOException ex) { System.err.printf("Failed to upload from file %s%n", ex.getMessage()); }
- Parameters:
filePath
- Path of the file to uploadparallelTransferOptions
-ParallelTransferOptions
to use to upload from file. Number of parallel transfers parameter is ignored.headers
-BlobHttpHeaders
metadata
- Metadata to associate with the blob. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.tier
-AccessTier
for the uploaded blobrequestConditions
-BlobRequestConditions
timeout
- An optional timeout value beyond which aRuntimeException
will be raised.- Throws:
UncheckedIOException
- If an I/O error occurs
-
uploadFromFileWithResponse
public com.azure.core.http.rest.Response<BlockBlobItem> uploadFromFileWithResponse(BlobUploadFromFileOptions options, Duration timeout, com.azure.core.util.Context context) Creates a new block blob, or updates the content of an existing block blob.To avoid overwriting, pass "*" to
BlobRequestConditions.setIfNoneMatch(String)
.Code Samples
BlobHttpHeaders headers = new BlobHttpHeaders() .setContentMd5("data".getBytes(StandardCharsets.UTF_8)) .setContentLanguage("en-US") .setContentType("binary"); 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)); Long blockSize = 100 * 1024 * 1024L; // 100 MB; ParallelTransferOptions parallelTransferOptions = new ParallelTransferOptions().setBlockSizeLong(blockSize); try { client.uploadFromFileWithResponse(new BlobUploadFromFileOptions(filePath) .setParallelTransferOptions(parallelTransferOptions).setHeaders(headers).setMetadata(metadata) .setTags(tags).setTier(AccessTier.HOT).setRequestConditions(requestConditions), timeout, new Context(key2, value2)); System.out.println("Upload from file succeeded"); } catch (UncheckedIOException ex) { System.err.printf("Failed to upload from file %s%n", ex.getMessage()); }
- Parameters:
options
-BlobUploadFromFileOptions
timeout
- An optional timeout value beyond which aRuntimeException
will be raised.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- Information about the uploaded block blob.
- Throws:
UncheckedIOException
- If an I/O error occurs
-
uploadWithResponse(BlobParallelUploadOptions, Duration, Context)