BlobClientBase Class
- java.
lang. Object - com.
azure. storage. blob. specialized. BlobClientBase
- com.
public class BlobClientBase
This class provides a client that contains all operations that apply to any blob type.
This client offers the ability to download blobs. Note that uploading data is specific to each type of blob. Please refer to the BlockBlobClient, PageBlobClient, or AppendBlobClient for upload options.
Field Summary
Modifier and Type | Field and Description |
---|---|
protected final String |
accountName
Storage account name that contains the blob. |
protected final String |
blobName
Name of the blob. |
protected final String |
containerName
Container name that contains the blob. |
protected final
Blob |
serviceVersion
Storage REST API version used in requests to the Storage service. |
Constructor Summary
Modifier | Constructor | Description |
---|---|---|
protected | BlobClientBase(BlobAsyncClientBase client) |
Constructor used by SpecializedBlobClientBuilder. |
protected | BlobClientBase(BlobAsyncClientBase client, HttpPipeline pipeline, String url, BlobServiceVersion serviceVersion, String accountName, String containerName, String blobName, String snapshot, CpkInfo customerProvidedKey, EncryptionScope encryptionScope, String versionId) |
Protected constructor for use by SpecializedBlobClientBuilder. |
Method Summary
Methods inherited from java.lang.Object
Field Details
accountName
protected final String accountName
Storage account name that contains the blob.
blobName
protected final String blobName
Name of the blob.
containerName
protected final String containerName
Container name that contains the blob.
serviceVersion
protected final BlobServiceVersion serviceVersion
Storage REST API version used in requests to the Storage service.
Constructor Details
BlobClientBase
protected BlobClientBase(BlobAsyncClientBase client)
Constructor used by SpecializedBlobClientBuilder.
Parameters:
BlobClientBase
protected BlobClientBase(BlobAsyncClientBase client, HttpPipeline pipeline, String url, BlobServiceVersion serviceVersion, String accountName, String containerName, String blobName, String snapshot, CpkInfo customerProvidedKey, EncryptionScope encryptionScope, String versionId)
Protected constructor for use by SpecializedBlobClientBuilder.
Parameters:
null
to interact with the blob directly.
null
to allow the service to use its own encryption.
null
to allow the service to use its own encryption.
null
to interact with the latest blob version.
Method Details
abortCopyFromUrl
public void abortCopyFromUrl(String copyId)
Stops a pending copy that was previously started and leaves a destination blob with 0 length and metadata.
Code Samples
client.abortCopyFromUrl(copyId);
System.out.println("Aborted copy completed.");
For more information, see the Azure Docs
Parameters:
abortCopyFromUrlWithResponse
public Response
Stops a pending copy that was previously started and leaves a destination blob with 0 length and metadata.
Code Samples
System.out.printf("Aborted copy completed with status %d%n",
client.abortCopyFromUrlWithResponse(copyId, leaseId, timeout,
new Context(key2, value2)).getStatusCode());
For more information, see the Azure Docs
Parameters:
Returns:
beginCopy
public SyncPoller
Copies the data at the source URL to a blob.
This method triggers a long-running, asynchronous operations. The source may be another blob or an Azure File. If the source is in another account, the source must either be public or authenticated with a SAS token. If the source is in the same account, the Shared Key authorization on the destination will also be applied to the source. The source URL must be URL encoded.
Code Samples
Map<String, String> metadata = Collections.singletonMap("metadata", "value");
Map<String, String> tags = Collections.singletonMap("tag", "value");
BlobBeginCopySourceRequestConditions modifiedRequestConditions = new BlobBeginCopySourceRequestConditions()
.setIfUnmodifiedSince(OffsetDateTime.now().minusDays(7));
BlobRequestConditions blobRequestConditions = new BlobRequestConditions().setLeaseId(leaseId);
SyncPoller<BlobCopyInfo, Void> poller = client.beginCopy(new BlobBeginCopyOptions(url).setMetadata(metadata)
.setTags(tags).setTier(AccessTier.HOT).setRehydratePriority(RehydratePriority.STANDARD)
.setSourceRequestConditions(modifiedRequestConditions)
.setDestinationRequestConditions(blobRequestConditions).setPollInterval(Duration.ofSeconds(2)));
PollResponse<BlobCopyInfo> response = poller.waitUntil(LongRunningOperationStatus.SUCCESSFULLY_COMPLETED);
System.out.printf("Copy identifier: %s%n", response.getValue().getCopyId());
For more information, see the Azure Docs
Parameters:
Returns:
beginCopy
public SyncPoller
Copies the data at the source URL to a blob.
This method triggers a long-running, asynchronous operations. The source may be another blob or an Azure File. If the source is in another account, the source must either be public or authenticated with a SAS token. If the source is in the same account, the Shared Key authorization on the destination will also be applied to the source. The source URL must be URL encoded.
Code Samples
final SyncPoller<BlobCopyInfo, Void> poller = client.beginCopy(url, Duration.ofSeconds(2));
PollResponse<BlobCopyInfo> pollResponse = poller.poll();
System.out.printf("Copy identifier: %s%n", pollResponse.getValue().getCopyId());
For more information, see the Azure Docs
Parameters:
Returns:
beginCopy
public SyncPoller
Copies the data at the source URL to a blob.
This method triggers a long-running, asynchronous operations. The source may be another blob or an Azure File. If the source is in another account, the source must either be public or authenticated with a SAS token. If the source is in the same account, the Shared Key authorization on the destination will also be applied to the source. The source URL must be URL encoded.
Code Samples
Map<String, String> metadata = Collections.singletonMap("metadata", "value");
RequestConditions modifiedRequestConditions = new RequestConditions()
.setIfUnmodifiedSince(OffsetDateTime.now().minusDays(7));
BlobRequestConditions blobRequestConditions = new BlobRequestConditions().setLeaseId(leaseId);
SyncPoller<BlobCopyInfo, Void> poller = client.beginCopy(url, metadata, AccessTier.HOT,
RehydratePriority.STANDARD, modifiedRequestConditions, blobRequestConditions, Duration.ofSeconds(2));
PollResponse<BlobCopyInfo> response = poller.waitUntil(LongRunningOperationStatus.SUCCESSFULLY_COMPLETED);
System.out.printf("Copy identifier: %s%n", response.getValue().getCopyId());
For more information, see the Azure Docs
Parameters:
Returns:
copyFromUrl
public String copyFromUrl(String copySource)
Copies the data at the source URL to a blob and waits for the copy to complete before returning a response.
The source must be a block blob no larger than 256MB. The source must also be either public or have a sas token attached. The URL must be URL encoded.
Code Samples
System.out.printf("Copy identifier: %s%n", client.copyFromUrl(url));
For more information, see the Azure Docs
Parameters:
Returns:
copyFromUrlWithResponse
public Response
Copies the data at the source URL to a blob and waits for the copy to complete before returning a response.
The source must be a block blob no larger than 256MB. The source must also be either public or have a sas token attached. The URL must be URL encoded.
Code Samples
Map<String, String> metadata = Collections.singletonMap("metadata", "value");
Map<String, String> tags = Collections.singletonMap("tag", "value");
RequestConditions modifiedRequestConditions = new RequestConditions()
.setIfUnmodifiedSince(OffsetDateTime.now().minusDays(7));
BlobRequestConditions blobRequestConditions = new BlobRequestConditions().setLeaseId(leaseId);
System.out.printf("Copy identifier: %s%n",
client.copyFromUrlWithResponse(new BlobCopyFromUrlOptions(url).setMetadata(metadata).setTags(tags)
.setTier(AccessTier.HOT).setSourceRequestConditions(modifiedRequestConditions)
.setDestinationRequestConditions(blobRequestConditions), timeout,
new Context(key1, value1)).getValue());
For more information, see the Azure Docs
Parameters:
Returns:
copyFromUrlWithResponse
public Response
Copies the data at the source URL to a blob and waits for the copy to complete before returning a response.
The source must be a block blob no larger than 256MB. The source must also be either public or have a sas token attached. The URL must be URL encoded.
Code Samples
Map<String, String> metadata = Collections.singletonMap("metadata", "value");
RequestConditions modifiedRequestConditions = new RequestConditions()
.setIfUnmodifiedSince(OffsetDateTime.now().minusDays(7));
BlobRequestConditions blobRequestConditions = new BlobRequestConditions().setLeaseId(leaseId);
System.out.printf("Copy identifier: %s%n",
client.copyFromUrlWithResponse(url, metadata, AccessTier.HOT, modifiedRequestConditions,
blobRequestConditions, timeout,
new Context(key1, value1)).getValue());
For more information, see the Azure Docs
Parameters:
Returns:
createSnapshot
public BlobClientBase createSnapshot()
Creates a read-only snapshot of the blob.
Code Samples
System.out.printf("Identifier for the snapshot is %s%n", client.createSnapshot().getSnapshotId());
For more information, see the Azure Docs
Returns:
createSnapshotWithResponse
public Response
Creates a read-only snapshot of the blob.
Code Samples
Map<String, String> snapshotMetadata = Collections.singletonMap("metadata", "value");
BlobRequestConditions requestConditions = new BlobRequestConditions().setLeaseId(leaseId);
System.out.printf("Identifier for the snapshot is %s%n",
client.createSnapshotWithResponse(snapshotMetadata, requestConditions, timeout,
new Context(key1, value1)).getValue());
For more information, see the Azure Docs
Parameters:
Returns:
delete
public void delete()
Deletes the specified blob or snapshot. To delete a blob with its snapshots use deleteWithResponse(DeleteSnapshotsOptionType deleteBlobSnapshotOptions, BlobRequestConditions requestConditions, Duration timeout, Context context) and set DeleteSnapshotsOptionType
to INCLUDE.
Code Samples
client.delete();
System.out.println("Delete completed.");
For more information, see the Azure Docs
deleteIfExists
public boolean deleteIfExists()
Deletes the specified blob or snapshot if it exists. To delete a blob with its snapshots use deleteIfExistsWithResponse(DeleteSnapshotsOptionType deleteBlobSnapshotOptions, BlobRequestConditions requestConditions, Duration timeout, Context context) and set DeleteSnapshotsOptionType
to INCLUDE.
Code Samples
boolean result = client.deleteIfExists();
System.out.println("Delete completed: " + result);
For more information, see the Azure Docs
Returns:
true
if delete succeeds, or false
if blob does not exist.deleteIfExistsWithResponse
public Response
Deletes the specified blob or snapshot if it exists. To delete a blob with its snapshots use deleteIfExistsWithResponse(DeleteSnapshotsOptionType deleteBlobSnapshotOptions, BlobRequestConditions requestConditions, Duration timeout, Context context) and set DeleteSnapshotsOptionType
to INCLUDE.
Code Samples
Response<Boolean> response = client.deleteIfExistsWithResponse(DeleteSnapshotsOptionType.INCLUDE, null, timeout,
new Context(key1, value1));
if (response.getStatusCode() == 404) {
System.out.println("Does not exist.");
} else {
System.out.printf("Delete completed with status %d%n", response.getStatusCode());
}
For more information, see the Azure Docs
Parameters:
Include
will delete the base blob and all snapshots. Only
will delete only the snapshots. If a snapshot is being
deleted, you must pass null.
Returns:
deleteImmutabilityPolicy
public void deleteImmutabilityPolicy()
Delete the immutability policy on a blob, blob snapshot or blob version.
NOTE: Blob Versioning must be enabled on your storage account and the blob must be in a container with immutable storage with versioning enabled to call this API.
Code Samples
client.deleteImmutabilityPolicy();
System.out.println("Completed immutability policy deletion.");
deleteImmutabilityPolicyWithResponse
public Response
Delete the immutability policy on a blob, blob snapshot or blob version.
NOTE: Blob Versioning must be enabled on your storage account and the blob must be in a container with immutable storage with versioning enabled to call this API.
Code Samples
System.out.println("Delete immutability policy completed with status: "
+ client.deleteImmutabilityPolicyWithResponse(timeout, new Context(key1, value1)).getStatusCode());
Parameters:
Returns:
deleteWithResponse
public Response
Deletes the specified blob or snapshot. To delete a blob with its snapshots use deleteWithResponse(DeleteSnapshotsOptionType deleteBlobSnapshotOptions, BlobRequestConditions requestConditions, Duration timeout, Context context) and set DeleteSnapshotsOptionType
to INCLUDE.
Code Samples
System.out.printf("Delete completed with status %d%n",
client.deleteWithResponse(DeleteSnapshotsOptionType.INCLUDE, null, timeout,
new Context(key1, value1)).getStatusCode());
For more information, see the Azure Docs
Parameters:
Include
will delete the base blob and all snapshots. Only
will delete only the snapshots. If a snapshot is being
deleted, you must pass null.
Returns:
download
@Deprecated
public void download(OutputStream stream)
Deprecated
Downloads the entire blob into an output stream. Uploading data must be done from the BlockBlobClient, PageBlobClient, or AppendBlobClient.
Code Samples
client.download(new ByteArrayOutputStream());
System.out.println("Download completed.");
For more information, see the Azure Docs
This method will be deprecated in the future. Use downloadStream(OutputStream stream) instead.
Parameters:
downloadContent
public BinaryData downloadContent()
Downloads the entire blob. Uploading data must be done from the BlockBlobClient, PageBlobClient, or AppendBlobClient.
Code Samples
BinaryData data = client.downloadContent();
System.out.printf("Downloaded %s", data.toString());
For more information, see the Azure Docs
This method supports downloads up to 2GB of data. Content will be buffered in memory. If the blob is larger, use downloadStream(OutputStream stream) to download larger blobs.
Returns:
downloadContentWithResponse
public BlobDownloadContentResponse downloadContentWithResponse(DownloadRetryOptions options, BlobRequestConditions requestConditions, BlobRange range, boolean getRangeContentMd5, Duration timeout, Context context)
Downloads a range of bytes from a blob into an output stream. Uploading data must be done from the BlockBlobClient, PageBlobClient, or AppendBlobClient.
Code Samples
DownloadRetryOptions options = new DownloadRetryOptions().setMaxRetryRequests(5);
BlobRange range = new BlobRange(1024, 2048L);
BlobDownloadContentResponse contentResponse = client.downloadContentWithResponse(options, null,
range, false, timeout, new Context(key2, value2));
BinaryData content = contentResponse.getValue();
System.out.printf("Download completed with status %d and content%s%n",
contentResponse.getStatusCode(), content.toString());
For more information, see the Azure Docs
This method supports downloads up to 2GB of data. Content will be buffered in memory. If the blob is larger, use #downloadStreamWithResponse(OutputStream, BlobRange, DownloadRetryOptions, BlobRequestConditions, boolean, Duration, Context) to download larger blobs.
Parameters:
Returns:
downloadContentWithResponse
public BlobDownloadContentResponse downloadContentWithResponse(DownloadRetryOptions options, BlobRequestConditions requestConditions, Duration timeout, Context context)
Downloads a range of bytes from a blob into an output stream. Uploading data must be done from the BlockBlobClient, PageBlobClient, or AppendBlobClient.
Code Samples
DownloadRetryOptions options = new DownloadRetryOptions().setMaxRetryRequests(5);
BlobDownloadContentResponse contentResponse = client.downloadContentWithResponse(options, null,
timeout, new Context(key2, value2));
BinaryData content = contentResponse.getValue();
System.out.printf("Download completed with status %d and content%s%n",
contentResponse.getStatusCode(), content.toString());
For more information, see the Azure Docs
This method supports downloads up to 2GB of data. Content will be buffered in memory. If the blob is larger, use #downloadStreamWithResponse(OutputStream, BlobRange, DownloadRetryOptions, BlobRequestConditions, boolean, Duration, Context) to download larger blobs.
Parameters:
Returns:
downloadStream
public void downloadStream(OutputStream stream)
Downloads the entire blob into an output stream. Uploading data must be done from the BlockBlobClient, PageBlobClient, or AppendBlobClient.
Code Samples
client.downloadStream(new ByteArrayOutputStream());
System.out.println("Download completed.");
For more information, see the Azure Docs
Parameters:
downloadStreamWithResponse
public BlobDownloadResponse downloadStreamWithResponse(OutputStream stream, BlobRange range, DownloadRetryOptions options, BlobRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, Context context)
Downloads a range of bytes from a blob into an output stream. Uploading data must be done from the BlockBlobClient, PageBlobClient, or AppendBlobClient.
Code Samples
BlobRange range = new BlobRange(1024, 2048L);
DownloadRetryOptions options = new DownloadRetryOptions().setMaxRetryRequests(5);
System.out.printf("Download completed with status %d%n",
client.downloadStreamWithResponse(new ByteArrayOutputStream(), range, options, null, false,
timeout, new Context(key2, value2)).getStatusCode());
For more information, see the Azure Docs
Parameters:
Returns:
downloadToFile
public BlobProperties downloadToFile(String filePath)
Downloads the entire blob into a file specified by the path.
The file will be created and must not exist, if the file already exists a FileAlreadyExistsException will be thrown.
Code Samples
client.downloadToFile(file);
System.out.println("Completed download to file");
For more information, see the Azure Docs
Parameters:
Returns:
downloadToFile
public BlobProperties downloadToFile(String filePath, boolean overwrite)
Downloads the entire blob into a file specified by the path.
If overwrite is set to false, the file will be created and must not exist, if the file already exists a FileAlreadyExistsException will be thrown.
Code Samples
boolean overwrite = false; // Default value
client.downloadToFile(file, overwrite);
System.out.println("Completed download to file");
For more information, see the Azure Docs
Parameters:
Returns:
downloadToFileWithResponse
public Response
Downloads the entire blob into a file specified by the path.
By default the file will be created and must not exist, if the file already exists a FileAlreadyExistsException will be thrown. To override this behavior, provide appropriate OpenOptions
Code Samples
client.downloadToFileWithResponse(new BlobDownloadToFileOptions(file)
.setRange(new BlobRange(1024, 2018L))
.setDownloadRetryOptions(new DownloadRetryOptions().setMaxRetryRequests(5))
.setOpenOptions(new HashSet<>(Arrays.asList(StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE,
StandardOpenOption.READ))), timeout, new Context(key2, value2));
System.out.println("Completed download to file");
For more information, see the Azure Docs
Parameters:
Returns:
downloadToFileWithResponse
public Response
Downloads the entire blob into a file specified by the path.
The file will be created and must not exist, if the file already exists a FileAlreadyExistsException will be thrown.
Code Samples
BlobRange range = new BlobRange(1024, 2048L);
DownloadRetryOptions options = new DownloadRetryOptions().setMaxRetryRequests(5);
client.downloadToFileWithResponse(file, range, new ParallelTransferOptions().setBlockSizeLong(4L * Constants.MB),
options, null, false, timeout, new Context(key2, value2));
System.out.println("Completed download to file");
For more information, see the Azure Docs
Parameters:
Returns:
downloadToFileWithResponse
public Response
Downloads the entire blob into a file specified by the path.
By default the file will be created and must not exist, if the file already exists a FileAlreadyExistsException will be thrown. To override this behavior, provide appropriate OpenOptions
Code Samples
BlobRange blobRange = new BlobRange(1024, 2048L);
DownloadRetryOptions downloadRetryOptions = new DownloadRetryOptions().setMaxRetryRequests(5);
Set<OpenOption> openOptions = new HashSet<>(Arrays.asList(StandardOpenOption.CREATE_NEW,
StandardOpenOption.WRITE, StandardOpenOption.READ)); // Default options
client.downloadToFileWithResponse(file, blobRange, new ParallelTransferOptions().setBlockSizeLong(4L * Constants.MB),
downloadRetryOptions, null, false, openOptions, timeout, new Context(key2, value2));
System.out.println("Completed download to file");
For more information, see the Azure Docs
Parameters:
Returns:
downloadWithResponse
@Deprecated
public BlobDownloadResponse downloadWithResponse(OutputStream stream, BlobRange range, DownloadRetryOptions options, BlobRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, Context context)
Deprecated
Downloads a range of bytes from a blob into an output stream. Uploading data must be done from the BlockBlobClient, PageBlobClient, or AppendBlobClient.
Code Samples
BlobRange range = new BlobRange(1024, 2048L);
DownloadRetryOptions options = new DownloadRetryOptions().setMaxRetryRequests(5);
System.out.printf("Download completed with status %d%n",
client.downloadWithResponse(new ByteArrayOutputStream(), range, options, null, false,
timeout, new Context(key2, value2)).getStatusCode());
For more information, see the Azure Docs
This method will be deprecated in the future. Use #downloadStreamWithResponse(OutputStream, BlobRange, DownloadRetryOptions, BlobRequestConditions, boolean, Duration, Context) instead.
Parameters:
Returns:
exists
public Boolean exists()
Gets if the blob this client represents exists in the cloud.
Code Samples
System.out.printf("Exists? %b%n", client.exists());
Returns:
existsWithResponse
public Response
Gets if the blob this client represents exists in the cloud.
Code Samples
System.out.printf("Exists? %b%n", client.existsWithResponse(timeout, new Context(key2, value2)).getValue());
Parameters:
Returns:
generateSas
public String generateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues)
Generates a service SAS for the blob using the specified BlobServiceSasSignatureValues
Note : The client must be authenticated via StorageSharedKeyCredential
See BlobServiceSasSignatureValues for more information on how to construct a service SAS.
Code Samples
OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
BlobSasPermission permission = new BlobSasPermission().setReadPermission(true);
BlobServiceSasSignatureValues values = new BlobServiceSasSignatureValues(expiryTime, permission)
.setStartTime(OffsetDateTime.now());
client.generateSas(values); // Client must be authenticated via StorageSharedKeyCredential
Parameters:
Returns:
String
representing the SAS query parameters.generateSas
public String generateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, Context context)
Generates a service SAS for the blob using the specified BlobServiceSasSignatureValues
Note : The client must be authenticated via StorageSharedKeyCredential
See BlobServiceSasSignatureValues for more information on how to construct a service SAS.
Code Samples
OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
BlobSasPermission permission = new BlobSasPermission().setReadPermission(true);
BlobServiceSasSignatureValues values = new BlobServiceSasSignatureValues(expiryTime, permission)
.setStartTime(OffsetDateTime.now());
// Client must be authenticated via StorageSharedKeyCredential
client.generateSas(values, new Context(key1, value1));
Parameters:
Returns:
String
representing the SAS query parameters.generateSas
public String generateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, Consumer
Generates a service SAS for the blob using the specified BlobServiceSasSignatureValues
Note : The client must be authenticated via StorageSharedKeyCredential
See BlobServiceSasSignatureValues for more information on how to construct a service SAS.
Parameters:
Returns:
String
representing the SAS query parameters.generateUserDelegationSas
public String generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey)
Generates a user delegation SAS for the blob using the specified BlobServiceSasSignatureValues.
See BlobServiceSasSignatureValues for more information on how to construct a user delegation SAS.
Code Samples
OffsetDateTime myExpiryTime = OffsetDateTime.now().plusDays(1);
BlobSasPermission myPermission = new BlobSasPermission().setReadPermission(true);
BlobServiceSasSignatureValues myValues = new BlobServiceSasSignatureValues(expiryTime, permission)
.setStartTime(OffsetDateTime.now());
client.generateUserDelegationSas(values, userDelegationKey);
Parameters:
Returns:
String
representing the SAS query parameters.generateUserDelegationSas
public String generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey, String accountName, Context context)
Generates a user delegation SAS for the blob using the specified BlobServiceSasSignatureValues.
See BlobServiceSasSignatureValues for more information on how to construct a user delegation SAS.
Code Samples
OffsetDateTime myExpiryTime = OffsetDateTime.now().plusDays(1);
BlobSasPermission myPermission = new BlobSasPermission().setReadPermission(true);
BlobServiceSasSignatureValues myValues = new BlobServiceSasSignatureValues(expiryTime, permission)
.setStartTime(OffsetDateTime.now());
client.generateUserDelegationSas(values, userDelegationKey, accountName, new Context(key1, value1));
Parameters:
Returns:
String
representing the SAS query parameters.generateUserDelegationSas
public String generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey, String accountName, Consumer
Generates a user delegation SAS for the blob using the specified BlobServiceSasSignatureValues.
See BlobServiceSasSignatureValues for more information on how to construct a user delegation SAS.
Parameters:
Returns:
String
representing the SAS query parameters.getAccountInfo
public StorageAccountInfo getAccountInfo()
Returns the sku name and account kind for the account.
Code Samples
StorageAccountInfo accountInfo = client.getAccountInfo();
System.out.printf("Account Kind: %s, SKU: %s%n", accountInfo.getAccountKind(), accountInfo.getSkuName());
For more information, see the Azure Docs
Returns:
getAccountInfoWithResponse
public Response
Returns the sku name and account kind for the account.
Code Samples
StorageAccountInfo accountInfo = client.getAccountInfoWithResponse(timeout, new Context(key1, value1)).getValue();
System.out.printf("Account Kind: %s, SKU: %s%n", accountInfo.getAccountKind(), accountInfo.getSkuName());
For more information, see the Azure Docs
Parameters:
Returns:
getAccountName
public String getAccountName()
Get associated account name.
Returns:
getAccountUrl
public String getAccountUrl()
Get the url of the storage account.
Returns:
getBlobName
public final String getBlobName()
Decodes and gets the blob name.
Code Samples
String blobName = client.getBlobName();
System.out.println("The name of the blob is " + blobName);
Returns:
getBlobUrl
public String getBlobUrl()
Gets the URL of the blob represented by this client.
Returns:
getContainerClient
public BlobContainerClient getContainerClient()
Gets a client pointing to the parent container.
Code Samples
BlobContainerClient containerClient = client.getContainerClient();
System.out.println("The name of the container is " + containerClient.getBlobContainerName());
Returns:
getContainerName
public final String getContainerName()
Get the container name.
Code Samples
String containerName = client.getContainerName();
System.out.println("The name of the container is " + containerName);
Returns:
getCustomerProvidedKey
public CpkInfo getCustomerProvidedKey()
Gets the CpkInfo used to encrypt this blob's content on the server.
Returns:
getCustomerProvidedKeyClient
public BlobClientBase getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)
Creates a new BlobClientBase with the specified customerProvidedKey
.
Parameters:
null
to use no customer provided key.
Returns:
customerProvidedKey
.getEncryptionScope
public String getEncryptionScope()
Gets the encryption scope
used to encrypt this blob's content on the server.
Returns:
getEncryptionScopeClient
public BlobClientBase getEncryptionScopeClient(String encryptionScope)
Creates a new BlobClientBase with the specified encryptionScope
.
Parameters:
null
to use no encryption scope.
Returns:
encryptionScope
.getHttpPipeline
public HttpPipeline getHttpPipeline()
Gets the HttpPipeline powering this client.
Returns:
getProperties
public BlobProperties getProperties()
Returns the blob's metadata and properties.
Code Samples
BlobProperties properties = client.getProperties();
System.out.printf("Type: %s, Size: %d%n", properties.getBlobType(), properties.getBlobSize());
For more information, see the Azure Docs
Returns:
getPropertiesWithResponse
public Response
Returns the blob's metadata and properties.
Code Samples
BlobRequestConditions requestConditions = new BlobRequestConditions().setLeaseId(leaseId);
BlobProperties properties = client.getPropertiesWithResponse(requestConditions, timeout,
new Context(key2, value2)).getValue();
System.out.printf("Type: %s, Size: %d%n", properties.getBlobType(), properties.getBlobSize());
For more information, see the Azure Docs
Parameters:
Returns:
getServiceVersion
public BlobServiceVersion getServiceVersion()
Gets the service version the client is using.
Returns:
getSnapshotClient
public BlobClientBase getSnapshotClient(String snapshot)
Creates a new BlobClientBase linked to the snapshot
of this blob resource.
Parameters:
Returns:
getSnapshotId
public String getSnapshotId()
Gets the snapshotId for a blob resource
Returns:
getTags
public Map
Returns the blob's tags.
Code Samples
Map<String, String> tags = client.getTags();
System.out.printf("Number of tags: %d%n", tags.size());
For more information, see the Azure Docs
Returns:
getTagsWithResponse
public Response
Returns the blob's tags.
Code Samples
Map<String, String> tags = client.getTagsWithResponse(new BlobGetTagsOptions(), timeout,
new Context(key1, value1)).getValue();
System.out.printf("Number of tags: %d%n", tags.size());
For more information, see the Azure Docs
Parameters:
Returns:
getVersionClient
public BlobClientBase getVersionClient(String versionId)
Creates a new BlobClientBase linked to the version
of this blob resource.
Parameters:
null
to interact with the latest blob version.
Returns:
getVersionId
public String getVersionId()
Gets the versionId for a blob resource
Returns:
isSnapshot
public boolean isSnapshot()
Determines if a blob is a snapshot
Returns:
openInputStream
public BlobInputStream openInputStream()
Opens a blob input stream to download the blob.
Returns:
InputStream
object that represents the stream to use for reading from the blob.openInputStream
public BlobInputStream openInputStream(BlobRange range, BlobRequestConditions requestConditions)
Opens a blob input stream to download the specified range of the blob.
Parameters:
Returns:
InputStream
object that represents the stream to use for reading from the blob.openInputStream
public BlobInputStream openInputStream(BlobInputStreamOptions options)
Opens a blob input stream to download the specified range of the blob.
Parameters:
Returns:
InputStream
object that represents the stream to use for reading from the blob.openInputStream
public BlobInputStream openInputStream(BlobInputStreamOptions options, Context context)
Opens a blob input stream to download the specified range of the blob.
Parameters:
Returns:
InputStream
object that represents the stream to use for reading from the blob.openQueryInputStream
public InputStream openQueryInputStream(String expression)
Opens a blob input stream to query the blob.
For more information, see the Azure Docs
Code Samples
String expression = "SELECT * from BlobStorage";
InputStream inputStream = client.openQueryInputStream(expression);
// Now you can read from the input stream like you would normally.
Parameters:
Returns:
InputStream
object that represents the stream to use for reading the query response.openQueryInputStreamWithResponse
public Response
Opens a blob input stream to query the blob.
For more information, see the Azure Docs
Code Samples
String expression = "SELECT * from BlobStorage";
BlobQuerySerialization input = new BlobQueryDelimitedSerialization()
.setColumnSeparator(',')
.setEscapeChar('\n')
.setRecordSeparator('\n')
.setHeadersPresent(true)
.setFieldQuote('"');
BlobQuerySerialization output = new BlobQueryJsonSerialization()
.setRecordSeparator('\n');
BlobRequestConditions requestConditions = new BlobRequestConditions()
.setLeaseId("leaseId");
Consumer<BlobQueryError> errorConsumer = System.out::println;
Consumer<BlobQueryProgress> progressConsumer = progress -> System.out.println("total blob bytes read: "
+ progress.getBytesScanned());
BlobQueryOptions queryOptions = new BlobQueryOptions(expression)
.setInputSerialization(input)
.setOutputSerialization(output)
.setRequestConditions(requestConditions)
.setErrorConsumer(errorConsumer)
.setProgressConsumer(progressConsumer);
InputStream inputStream = client.openQueryInputStreamWithResponse(queryOptions).getValue();
// Now you can read from the input stream like you would normally.
Parameters:
Returns:
InputStream
object
that represents the stream to use for reading the query response.openSeekableByteChannelRead
public BlobSeekableByteChannelReadResult openSeekableByteChannelRead(BlobSeekableByteChannelReadOptions options, Context context)
Opens a seekable byte channel in read-only mode to download the blob.
Parameters:
Returns:
SeekableByteChannel
that represents the channel to use for reading from the blob.query
public void query(OutputStream stream, String expression)
Queries an entire blob into an output stream.
For more information, see the Azure Docs
Code Samples
ByteArrayOutputStream queryData = new ByteArrayOutputStream();
String expression = "SELECT * from BlobStorage";
client.query(queryData, expression);
System.out.println("Query completed.");
Parameters:
queryWithResponse
public BlobQueryResponse queryWithResponse(BlobQueryOptions queryOptions, Duration timeout, Context context)
Queries an entire blob into an output stream.
For more information, see the Azure Docs
Code Samples
ByteArrayOutputStream queryData = new ByteArrayOutputStream();
String expression = "SELECT * from BlobStorage";
BlobQueryJsonSerialization input = new BlobQueryJsonSerialization()
.setRecordSeparator('\n');
BlobQueryDelimitedSerialization output = new BlobQueryDelimitedSerialization()
.setEscapeChar('\0')
.setColumnSeparator(',')
.setRecordSeparator('\n')
.setFieldQuote('\'')
.setHeadersPresent(true);
BlobRequestConditions requestConditions = new BlobRequestConditions().setLeaseId(leaseId);
Consumer<BlobQueryError> errorConsumer = System.out::println;
Consumer<BlobQueryProgress> progressConsumer = progress -> System.out.println("total blob bytes read: "
+ progress.getBytesScanned());
BlobQueryOptions queryOptions = new BlobQueryOptions(expression, queryData)
.setInputSerialization(input)
.setOutputSerialization(output)
.setRequestConditions(requestConditions)
.setErrorConsumer(errorConsumer)
.setProgressConsumer(progressConsumer);
System.out.printf("Query completed with status %d%n",
client.queryWithResponse(queryOptions, timeout, new Context(key1, value1))
.getStatusCode());
Parameters:
Returns:
setAccessTier
public void setAccessTier(AccessTier tier)
Sets the tier on a blob. The operation is allowed on a page blob in a premium storage account or a block blob in a blob storage or GPV2 account. A premium page blob's tier determines the allowed size, IOPS, and bandwidth of the blob. A block blob's tier determines the Hot/Cool/Archive storage type. This does not update the blob's etag.
Code Samples
client.setAccessTier(AccessTier.HOT);
System.out.println("Set tier completed.");
For more information, see the Azure Docs
Parameters:
setAccessTierWithResponse
public Response
Sets the tier on a blob. The operation is allowed on a page blob in a premium storage account or a block blob in a blob storage or GPV2 account. A premium page blob's tier determines the allowed size, IOPS, and bandwidth of the blob. A block blob's tier determines the Hot/Cool/Archive storage type. This does not update the blob's etag.
Code Samples
System.out.printf("Set tier completed with status code %d%n",
client.setAccessTierWithResponse(AccessTier.HOT, RehydratePriority.STANDARD, leaseId, timeout,
new Context(key2, value2)).getStatusCode());
For more information, see the Azure Docs
Parameters:
Returns:
setAccessTierWithResponse
public Response
Sets the tier on a blob. The operation is allowed on a page blob in a premium storage account or a block blob in a blob storage or GPV2 account. A premium page blob's tier determines the allowed size, IOPS, and bandwidth of the blob. A block blob's tier determines the Hot/Cool/Archive storage type. This does not update the blob's etag.
Code Samples
System.out.printf("Set tier completed with status code %d%n",
client.setAccessTierWithResponse(new BlobSetAccessTierOptions(AccessTier.HOT)
.setPriority(RehydratePriority.STANDARD)
.setLeaseId(leaseId)
.setTagsConditions(tags),
timeout, new Context(key2, value2)).getStatusCode());
For more information, see the Azure Docs
Parameters:
Returns:
setHttpHeaders
public void setHttpHeaders(BlobHttpHeaders headers)
Changes a blob's HTTP header properties. if only one HTTP header is updated, the others will all be erased. In order to preserve existing values, they must be passed alongside the header being changed.
Code Samples
client.setHttpHeaders(new BlobHttpHeaders()
.setContentLanguage("en-US")
.setContentType("binary"));
System.out.println("Set HTTP headers completed");
For more information, see the Azure Docs
Parameters:
setHttpHeadersWithResponse
public Response
Changes a blob's HTTP header properties. if only one HTTP header is updated, the others will all be erased. In order to preserve existing values, they must be passed alongside the header being changed.
Code Samples
BlobRequestConditions requestConditions = new BlobRequestConditions().setLeaseId(leaseId);
System.out.printf("Set HTTP headers completed with status %d%n",
client.setHttpHeadersWithResponse(new BlobHttpHeaders()
.setContentLanguage("en-US")
.setContentType("binary"), requestConditions, timeout, new Context(key1, value1))
.getStatusCode());
For more information, see the Azure Docs
Parameters:
Returns:
setImmutabilityPolicy
public BlobImmutabilityPolicy setImmutabilityPolicy(BlobImmutabilityPolicy immutabilityPolicy)
Sets the immutability policy on a blob, blob snapshot or blob version.
NOTE: Blob Versioning must be enabled on your storage account and the blob must be in a container with immutable storage with versioning enabled to call this API.
Code Samples
BlobImmutabilityPolicy policy = new BlobImmutabilityPolicy()
.setPolicyMode(BlobImmutabilityPolicyMode.LOCKED)
.setExpiryTime(OffsetDateTime.now().plusDays(1));
BlobImmutabilityPolicy setPolicy = client.setImmutabilityPolicy(policy);
System.out.println("Successfully completed setting the immutability policy");
Parameters:
Returns:
setImmutabilityPolicyWithResponse
public Response
Sets the immutability policy on a blob, blob snapshot or blob version.
NOTE: Blob Versioning must be enabled on your storage account and the blob must be in a container with immutable storage with versioning enabled to call this API.
Code Samples
BlobImmutabilityPolicy immutabilityPolicy = new BlobImmutabilityPolicy()
.setPolicyMode(BlobImmutabilityPolicyMode.LOCKED)
.setExpiryTime(OffsetDateTime.now().plusDays(1));
BlobRequestConditions requestConditions = new BlobRequestConditions()
.setIfUnmodifiedSince(OffsetDateTime.now().minusDays(1));
Response<BlobImmutabilityPolicy> response = client.setImmutabilityPolicyWithResponse(immutabilityPolicy,
requestConditions, timeout, new Context(key1, value1));
System.out.println("Successfully completed setting the immutability policy");
Parameters:
Returns:
setLegalHold
public BlobLegalHoldResult setLegalHold(boolean legalHold)
Sets a legal hold on the blob.
NOTE: Blob Versioning must be enabled on your storage account and the blob must be in a container with immutable storage with versioning enabled to call this API.
Code Samples
System.out.println("Legal hold status: " + client.setLegalHold(true));
Parameters:
Returns:
setLegalHoldWithResponse
public Response
Sets a legal hold on the blob.
NOTE: Blob Versioning must be enabled on your storage account and the blob must be in a container with immutable storage with versioning enabled to call this API.
Code Samples
System.out.println("Legal hold status: " + client.setLegalHoldWithResponse(true, timeout,
new Context(key1, value1)));
Parameters:
Returns:
setMetadata
public void setMetadata(Map
Changes a blob's metadata. The specified metadata in this method will replace existing metadata. If old values must be preserved, they must be downloaded and included in the call to this method.
Code Samples
client.setMetadata(Collections.singletonMap("metadata", "value"));
System.out.println("Set metadata completed");
For more information, see the Azure Docs
Parameters:
setMetadataWithResponse
public Response
Changes a blob's metadata. The specified metadata in this method will replace existing metadata. If old values must be preserved, they must be downloaded and included in the call to this method.
Code Samples
BlobRequestConditions requestConditions = new BlobRequestConditions().setLeaseId(leaseId);
System.out.printf("Set metadata completed with status %d%n",
client.setMetadataWithResponse(Collections.singletonMap("metadata", "value"), requestConditions, timeout,
new Context(key1, value1)).getStatusCode());
For more information, see the Azure Docs
Parameters:
Returns:
setTags
public void setTags(Map
Sets user defined tags. The specified tags in this method will replace existing tags. If old values must be preserved, they must be downloaded and included in the call to this method.
Code Samples
client.setTags(Collections.singletonMap("tag", "value"));
System.out.println("Set tag completed");
For more information, see the Azure Docs
Parameters:
setTagsWithResponse
public Response
Sets user defined tags. The specified tags in this method will replace existing tags. If old values must be preserved, they must be downloaded and included in the call to this method.
Code Samples
System.out.printf("Set metadata completed with status %d%n",
client.setTagsWithResponse(new BlobSetTagsOptions(Collections.singletonMap("tag", "value")), timeout,
new Context(key1, value1))
.getStatusCode());
For more information, see the Azure Docs
Parameters:
Returns:
undelete
public void undelete()
Undelete restores the content and metadata of a soft-deleted blob and/or any associated soft-deleted snapshots.
Code Samples
client.undelete();
System.out.println("Undelete completed");
For more information, see the Azure Docs
undeleteWithResponse
public Response
Undelete restores the content and metadata of a soft-deleted blob and/or any associated soft-deleted snapshots.
Code Samples
System.out.printf("Undelete completed with status %d%n", client.undeleteWithResponse(timeout,
new Context(key1, value1)).getStatusCode());
For more information, see the Azure Docs
Parameters:
Returns: