Class BlobClientBase
- Direct Known Subclasses:
AppendBlobClient,BlobClient,BlockBlobClient,PageBlobClient
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
FieldsModifier and TypeFieldDescriptionprotected final StringStorage account name that contains the blob.protected final StringName of the blob.protected final StringContainer name that contains the blob.protected final BlobServiceVersionStorage REST API version used in requests to the Storage service. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBlobClientBase(BlobAsyncClientBase client) Constructor used bySpecializedBlobClientBuilder.protectedBlobClientBase(BlobAsyncClientBase client, com.azure.core.http.HttpPipeline pipeline, String url, BlobServiceVersion serviceVersion, String accountName, String containerName, String blobName, String snapshot, CpkInfo customerProvidedKey, com.azure.storage.blob.implementation.models.EncryptionScope encryptionScope, String versionId) Protected constructor for use bySpecializedBlobClientBuilder. -
Method Summary
Modifier and TypeMethodDescriptionvoidabortCopyFromUrl(String copyId) Stops a pending copy that was previously started and leaves a destination blob with 0 length and metadata.com.azure.core.http.rest.Response<Void> abortCopyFromUrlWithResponse(String copyId, String leaseId, Duration timeout, com.azure.core.util.Context context) Stops a pending copy that was previously started and leaves a destination blob with 0 length and metadata.com.azure.core.util.polling.SyncPoller<BlobCopyInfo, Void> beginCopy(BlobBeginCopyOptions options) Copies the data at the source URL to a blob.com.azure.core.util.polling.SyncPoller<BlobCopyInfo, Void> Copies the data at the source URL to a blob.com.azure.core.util.polling.SyncPoller<BlobCopyInfo, Void> beginCopy(String sourceUrl, Map<String, String> metadata, AccessTier tier, RehydratePriority priority, com.azure.core.http.RequestConditions sourceModifiedRequestConditions, BlobRequestConditions destRequestConditions, Duration pollInterval) Copies the data at the source URL to a blob.copyFromUrl(String copySource) Copies the data at the source URL to a blob and waits for the copy to complete before returning a response.com.azure.core.http.rest.Response<String> copyFromUrlWithResponse(BlobCopyFromUrlOptions options, Duration timeout, com.azure.core.util.Context context) Copies the data at the source URL to a blob and waits for the copy to complete before returning a response.com.azure.core.http.rest.Response<String> copyFromUrlWithResponse(String copySource, Map<String, String> metadata, AccessTier tier, com.azure.core.http.RequestConditions sourceModifiedRequestConditions, BlobRequestConditions destRequestConditions, Duration timeout, com.azure.core.util.Context context) Copies the data at the source URL to a blob and waits for the copy to complete before returning a response.Creates a read-only snapshot of the blob.com.azure.core.http.rest.Response<BlobClientBase> createSnapshotWithResponse(Map<String, String> metadata, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Creates a read-only snapshot of the blob.voiddelete()Deletes the specified blob or snapshot.booleanDeletes the specified blob or snapshot if it exists.com.azure.core.http.rest.Response<Boolean> deleteIfExistsWithResponse(DeleteSnapshotsOptionType deleteBlobSnapshotOptions, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Deletes the specified blob or snapshot if it exists.voidDelete the immutability policy on a blob, blob snapshot or blob version.com.azure.core.http.rest.Response<Void> deleteImmutabilityPolicyWithResponse(Duration timeout, com.azure.core.util.Context context) Delete the immutability policy on a blob, blob snapshot or blob version.com.azure.core.http.rest.Response<Void> deleteWithResponse(DeleteSnapshotsOptionType deleteBlobSnapshotOptions, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Deletes the specified blob or snapshot.voiddownload(OutputStream stream) Deprecated.com.azure.core.util.BinaryDataDownloads the entire blob.downloadContentWithResponse(DownloadRetryOptions options, BlobRequestConditions requestConditions, BlobRange range, boolean getRangeContentMd5, Duration timeout, com.azure.core.util.Context context) Downloads a range of bytes from a blob into an output stream.downloadContentWithResponse(DownloadRetryOptions options, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Downloads a range of bytes from a blob into an output stream.voiddownloadStream(OutputStream stream) Downloads the entire blob into an output stream.downloadStreamWithResponse(OutputStream stream, BlobRange range, DownloadRetryOptions options, BlobRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, com.azure.core.util.Context context) Downloads a range of bytes from a blob into an output stream.downloadToFile(String filePath) Downloads the entire blob into a file specified by the path.downloadToFile(String filePath, boolean overwrite) Downloads the entire blob into a file specified by the path.com.azure.core.http.rest.Response<BlobProperties> downloadToFileWithResponse(BlobDownloadToFileOptions options, Duration timeout, com.azure.core.util.Context context) Downloads the entire blob into a file specified by the path.com.azure.core.http.rest.Response<BlobProperties> downloadToFileWithResponse(String filePath, BlobRange range, ParallelTransferOptions parallelTransferOptions, DownloadRetryOptions downloadRetryOptions, BlobRequestConditions requestConditions, boolean rangeGetContentMd5, Duration timeout, com.azure.core.util.Context context) Downloads the entire blob into a file specified by the path.com.azure.core.http.rest.Response<BlobProperties> downloadToFileWithResponse(String filePath, BlobRange range, ParallelTransferOptions parallelTransferOptions, DownloadRetryOptions downloadRetryOptions, BlobRequestConditions requestConditions, boolean rangeGetContentMd5, Set<OpenOption> openOptions, Duration timeout, com.azure.core.util.Context context) Downloads the entire blob into a file specified by the path.downloadWithResponse(OutputStream stream, BlobRange range, DownloadRetryOptions options, BlobRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, com.azure.core.util.Context context) exists()Gets if the blob this client represents exists in the cloud.com.azure.core.http.rest.Response<Boolean> existsWithResponse(Duration timeout, com.azure.core.util.Context context) Gets if the blob this client represents exists in the cloud.generateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues) Generates a service SAS for the blob using the specifiedBlobServiceSasSignatureValuesgenerateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, com.azure.core.util.Context context) Generates a service SAS for the blob using the specifiedBlobServiceSasSignatureValuesgenerateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, Consumer<String> stringToSignHandler, com.azure.core.util.Context context) Generates a service SAS for the blob using the specifiedBlobServiceSasSignatureValuesgenerateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey) Generates a user delegation SAS for the blob using the specifiedBlobServiceSasSignatureValues.generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey, String accountName, com.azure.core.util.Context context) Generates a user delegation SAS for the blob using the specifiedBlobServiceSasSignatureValues.generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey, String accountName, Consumer<String> stringToSignHandler, com.azure.core.util.Context context) Generates a user delegation SAS for the blob using the specifiedBlobServiceSasSignatureValues.Returns the sku name and account kind for the account.com.azure.core.http.rest.Response<StorageAccountInfo> getAccountInfoWithResponse(Duration timeout, com.azure.core.util.Context context) Returns the sku name and account kind for the account.Get associated account name.Get the url of the storage account.final StringDecodes and gets the blob name.Gets the URL of the blob represented by this client.Gets a client pointing to the parent container.final StringGet the container name.Gets theCpkInfoused to encrypt this blob's content on the server.getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey) Creates a newBlobClientBasewith the specifiedcustomerProvidedKey.Gets theencryption scopeused to encrypt this blob's content on the server.getEncryptionScopeClient(String encryptionScope) Creates a newBlobClientBasewith the specifiedencryptionScope.com.azure.core.http.HttpPipelineGets theHttpPipelinepowering this client.Returns the blob's metadata and properties.com.azure.core.http.rest.Response<BlobProperties> getPropertiesWithResponse(BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Returns the blob's metadata and properties.Gets the service version the client is using.getSnapshotClient(String snapshot) Creates a newBlobClientBaselinked to thesnapshotof this blob resource.Gets the snapshotId for a blob resourcegetTags()Returns the blob's tags.getTagsWithResponse(BlobGetTagsOptions options, Duration timeout, com.azure.core.util.Context context) Returns the blob's tags.getVersionClient(String versionId) Creates a newBlobClientBaselinked to theversionof this blob resource.Gets the versionId for a blob resourcebooleanDetermines if a blob is a snapshotOpens a blob input stream to download the blob.openInputStream(BlobRange range, BlobRequestConditions requestConditions) Opens a blob input stream to download the specified range of the blob.openInputStream(BlobInputStreamOptions options) Opens a blob input stream to download the specified range of the blob.openInputStream(BlobInputStreamOptions options, com.azure.core.util.Context context) Opens a blob input stream to download the specified range of the blob.openQueryInputStream(String expression) Opens a blob input stream to query the blob.com.azure.core.http.rest.Response<InputStream> openQueryInputStreamWithResponse(BlobQueryOptions queryOptions) Opens a blob input stream to query the blob.openSeekableByteChannelRead(BlobSeekableByteChannelReadOptions options, com.azure.core.util.Context context) Opens a seekable byte channel in read-only mode to download the blob.voidquery(OutputStream stream, String expression) Queries an entire blob into an output stream.queryWithResponse(BlobQueryOptions queryOptions, Duration timeout, com.azure.core.util.Context context) Queries an entire blob into an output stream.voidsetAccessTier(AccessTier tier) Sets the tier on a blob.com.azure.core.http.rest.Response<Void> setAccessTierWithResponse(AccessTier tier, RehydratePriority priority, String leaseId, Duration timeout, com.azure.core.util.Context context) Sets the tier on a blob.com.azure.core.http.rest.Response<Void> setAccessTierWithResponse(BlobSetAccessTierOptions options, Duration timeout, com.azure.core.util.Context context) Sets the tier on a blob.voidsetHttpHeaders(BlobHttpHeaders headers) Changes a blob's HTTP header properties. if only one HTTP header is updated, the others will all be erased.com.azure.core.http.rest.Response<Void> setHttpHeadersWithResponse(BlobHttpHeaders headers, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Changes a blob's HTTP header properties. if only one HTTP header is updated, the others will all be erased.setImmutabilityPolicy(BlobImmutabilityPolicy immutabilityPolicy) Sets the immutability policy on a blob, blob snapshot or blob version.com.azure.core.http.rest.Response<BlobImmutabilityPolicy> setImmutabilityPolicyWithResponse(BlobImmutabilityPolicy immutabilityPolicy, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Sets the immutability policy on a blob, blob snapshot or blob version.setLegalHold(boolean legalHold) Sets a legal hold on the blob.com.azure.core.http.rest.Response<BlobLegalHoldResult> setLegalHoldWithResponse(boolean legalHold, Duration timeout, com.azure.core.util.Context context) Sets a legal hold on the blob.voidsetMetadata(Map<String, String> metadata) Changes a blob's metadata.com.azure.core.http.rest.Response<Void> setMetadataWithResponse(Map<String, String> metadata, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Changes a blob's metadata.voidSets user defined tags.com.azure.core.http.rest.Response<Void> setTagsWithResponse(BlobSetTagsOptions options, Duration timeout, com.azure.core.util.Context context) Sets user defined tags.voidundelete()Undelete restores the content and metadata of a soft-deleted blob and/or any associated soft-deleted snapshots.com.azure.core.http.rest.Response<Void> undeleteWithResponse(Duration timeout, com.azure.core.util.Context context) Undelete restores the content and metadata of a soft-deleted blob and/or any associated soft-deleted snapshots.
-
Field Details
-
accountName
Storage account name that contains the blob. -
containerName
Container name that contains the blob. -
blobName
Name of the blob. -
serviceVersion
Storage REST API version used in requests to the Storage service.
-
-
Constructor Details
-
BlobClientBase
Constructor used bySpecializedBlobClientBuilder.- Parameters:
client- the async blob client
-
BlobClientBase
protected BlobClientBase(BlobAsyncClientBase client, com.azure.core.http.HttpPipeline pipeline, String url, BlobServiceVersion serviceVersion, String accountName, String containerName, String blobName, String snapshot, CpkInfo customerProvidedKey, com.azure.storage.blob.implementation.models.EncryptionScope encryptionScope, String versionId) Protected constructor for use bySpecializedBlobClientBuilder.- Parameters:
client- the async blob clientpipeline- The pipeline used to send and receive service requests.url- The endpoint where to send service requests.serviceVersion- The version of the service to receive requests.accountName- The storage account name.containerName- The container name.blobName- The blob name.snapshot- The snapshot identifier for the blob, passnullto interact with the blob directly.customerProvidedKey- Customer provided key used during encryption of the blob's data on the server, passnullto allow the service to use its own encryption.encryptionScope- Encryption scope used during encryption of the blob's data on the server, passnullto allow the service to use its own encryption.versionId- The version identifier for the blob, passnullto interact with the latest blob version.
-
-
Method Details
-
getSnapshotClient
Creates a newBlobClientBaselinked to thesnapshotof this blob resource.- Parameters:
snapshot- the identifier for a specific snapshot of this blob- Returns:
- a
BlobClientBaseused to interact with the specific snapshot.
-
getVersionClient
Creates a newBlobClientBaselinked to theversionof this blob resource.- Parameters:
versionId- the identifier for a specific version of this blob, passnullto interact with the latest blob version.- Returns:
- a
BlobClientBaseused to interact with the specific version.
-
getEncryptionScopeClient
Creates a newBlobClientBasewith the specifiedencryptionScope.- Parameters:
encryptionScope- the encryption scope for the blob, passnullto use no encryption scope.- Returns:
- a
BlobClientBasewith the specifiedencryptionScope.
-
getCustomerProvidedKeyClient
Creates a newBlobClientBasewith the specifiedcustomerProvidedKey.- Parameters:
customerProvidedKey- theCustomerProvidedKeyfor the blob, passnullto use no customer provided key.- Returns:
- a
BlobClientBasewith the specifiedcustomerProvidedKey.
-
getAccountUrl
Get the url of the storage account.- Returns:
- the URL of the storage account
-
getBlobUrl
Gets the URL of the blob represented by this client.- Returns:
- the URL.
-
getAccountName
Get associated account name.- Returns:
- account name associated with this storage resource.
-
getContainerName
Get the container name.Code Samples
String containerName = client.getContainerName(); System.out.println("The name of the container is " + containerName);- Returns:
- The name of the container.
-
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:
BlobContainerClient
-
getBlobName
Decodes and gets the blob name.Code Samples
String blobName = client.getBlobName(); System.out.println("The name of the blob is " + blobName);- Returns:
- The decoded name of the blob.
-
getHttpPipeline
public com.azure.core.http.HttpPipeline getHttpPipeline()Gets theHttpPipelinepowering this client.- Returns:
- The pipeline.
-
getCustomerProvidedKey
Gets theCpkInfoused to encrypt this blob's content on the server.- Returns:
- the customer provided key used for encryption.
-
getEncryptionScope
Gets theencryption scopeused to encrypt this blob's content on the server.- Returns:
- the encryption scope used for encryption.
-
getServiceVersion
Gets the service version the client is using.- Returns:
- the service version the client is using.
-
getSnapshotId
Gets the snapshotId for a blob resource- Returns:
- A string that represents the snapshotId of the snapshot blob
-
getVersionId
Gets the versionId for a blob resource- Returns:
- A string that represents the versionId of the snapshot blob
-
isSnapshot
public boolean isSnapshot()Determines if a blob is a snapshot- Returns:
- A boolean that indicates if a blob is a snapshot
-
openInputStream
Opens a blob input stream to download the blob.- Returns:
- An
InputStreamobject that represents the stream to use for reading from the blob. - Throws:
BlobStorageException- If a storage service error occurred.
-
openInputStream
Opens a blob input stream to download the specified range of the blob.- Parameters:
range-BlobRangerequestConditions- AnBlobRequestConditionsobject that represents the access conditions for the blob.- Returns:
- An
InputStreamobject that represents the stream to use for reading from the blob. - Throws:
BlobStorageException- If a storage service error occurred.
-
openInputStream
Opens a blob input stream to download the specified range of the blob.- Parameters:
options-BlobInputStreamOptions- Returns:
- An
InputStreamobject that represents the stream to use for reading from the blob. - Throws:
BlobStorageException- If a storage service error occurred.
-
openInputStream
public BlobInputStream openInputStream(BlobInputStreamOptions options, com.azure.core.util.Context context) Opens a blob input stream to download the specified range of the blob.- Parameters:
options-BlobInputStreamOptionscontext-Context- Returns:
- An
InputStreamobject that represents the stream to use for reading from the blob. - Throws:
BlobStorageException- If a storage service error occurred.
-
openSeekableByteChannelRead
public BlobSeekableByteChannelReadResult openSeekableByteChannelRead(BlobSeekableByteChannelReadOptions options, com.azure.core.util.Context context) Opens a seekable byte channel in read-only mode to download the blob.- Parameters:
options-BlobSeekableByteChannelReadOptionscontext-Context- Returns:
- A
SeekableByteChannelthat represents the channel to use for reading from the blob. - Throws:
BlobStorageException- If a storage service error occurred.
-
exists
Gets if the blob this client represents exists in the cloud.Code Samples
System.out.printf("Exists? %b%n", client.exists());- Returns:
- true if the blob exists, false if it doesn't
-
existsWithResponse
public com.azure.core.http.rest.Response<Boolean> existsWithResponse(Duration timeout, com.azure.core.util.Context context) 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:
timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- true if the blob exists, false if it doesn't
-
beginCopy
public com.azure.core.util.polling.SyncPoller<BlobCopyInfo,Void> beginCopy(String sourceUrl, Duration pollInterval) 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:
sourceUrl- The source URL to copy from. URLs outside of Azure may only be copied to block blobs.pollInterval- Duration between each poll for the copy status. If none is specified, a default of one second is used.- Returns:
- A
SyncPollerto poll the progress of blob copy operation.
-
beginCopy
public com.azure.core.util.polling.SyncPoller<BlobCopyInfo,Void> beginCopy(String sourceUrl, Map<String, String> metadata, AccessTier tier, RehydratePriority priority, com.azure.core.http.RequestConditions sourceModifiedRequestConditions, BlobRequestConditions destRequestConditions, Duration pollInterval) 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:
sourceUrl- The source URL to copy from. URLs outside of Azure may only be copied to block blobs.metadata- Metadata to associate with the destination blob. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.tier-AccessTierfor the destination blob.priority-RehydratePriorityfor rehydrating the blob.sourceModifiedRequestConditions-RequestConditionsagainst the source. Standard HTTP Access conditions related to the modification of data. ETag and LastModifiedTime are used to construct conditions related to when the blob was changed relative to the given request. The request will fail if the specified condition is not satisfied.destRequestConditions-BlobRequestConditionsagainst the destination.pollInterval- Duration between each poll for the copy status. If none is specified, a default of one second is used.- Returns:
- A
SyncPollerto poll the progress of blob copy operation.
-
beginCopy
public com.azure.core.util.polling.SyncPoller<BlobCopyInfo,Void> beginCopy(BlobBeginCopyOptions options) 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:
options-BlobBeginCopyOptions- Returns:
- A
SyncPollerto poll the progress of blob copy operation.
-
abortCopyFromUrl
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:
copyId- The id of the copy operation to abort.
-
abortCopyFromUrlWithResponse
public com.azure.core.http.rest.Response<Void> abortCopyFromUrlWithResponse(String copyId, String leaseId, Duration timeout, com.azure.core.util.Context context) 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:
copyId- The id of the copy operation to abort.leaseId- The lease ID the active lease on the blob must match.timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
-
copyFromUrl
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:
copySource- The source URL to copy from.- Returns:
- The copy ID for the long running operation.
- Throws:
IllegalArgumentException- IfcopySourceis a malformedURL.
-
copyFromUrlWithResponse
public com.azure.core.http.rest.Response<String> copyFromUrlWithResponse(String copySource, Map<String, String> metadata, AccessTier tier, com.azure.core.http.RequestConditions sourceModifiedRequestConditions, BlobRequestConditions destRequestConditions, Duration timeout, com.azure.core.util.Context context) 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:
copySource- The source URL to copy from. URLs outside of Azure may only be copied to block blobs.metadata- Metadata to associate with the destination blob. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.tier-AccessTierfor the destination blob.sourceModifiedRequestConditions-RequestConditionsagainst the source. Standard HTTP Access conditions related to the modification of data. ETag and LastModifiedTime are used to construct conditions related to when the blob was changed relative to the given request. The request will fail if the specified condition is not satisfied.destRequestConditions-BlobRequestConditionsagainst the destination.timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The copy ID for the long running operation.
- Throws:
IllegalArgumentException- IfcopySourceis a malformedURL.
-
copyFromUrlWithResponse
public com.azure.core.http.rest.Response<String> copyFromUrlWithResponse(BlobCopyFromUrlOptions options, Duration timeout, com.azure.core.util.Context context) 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:
options-BlobCopyFromUrlOptionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The copy ID for the long running operation.
- Throws:
IllegalArgumentException- IfcopySourceis a malformedURL.
-
download
Deprecated.usedownloadStream(OutputStream)instead.Downloads the entire blob into an output stream. Uploading data must be done from theBlockBlobClient,PageBlobClient, orAppendBlobClient.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)instead.- Parameters:
stream- A non-nullOutputStreaminstance where the downloaded data will be written.- Throws:
UncheckedIOException- If an I/O error occurs.NullPointerException- ifstreamis null
-
downloadStream
Downloads the entire blob into an output stream. Uploading data must be done from theBlockBlobClient,PageBlobClient, orAppendBlobClient.Code Samples
client.downloadStream(new ByteArrayOutputStream()); System.out.println("Download completed.");For more information, see the Azure Docs
- Parameters:
stream- A non-nullOutputStreaminstance where the downloaded data will be written.- Throws:
UncheckedIOException- If an I/O error occurs.NullPointerException- ifstreamis null
-
downloadContent
public com.azure.core.util.BinaryData downloadContent()Downloads the entire blob. Uploading data must be done from theBlockBlobClient,PageBlobClient, orAppendBlobClient.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)to download larger blobs.- Returns:
- The content of the blob.
- Throws:
UncheckedIOException- If an I/O error occurs.
-
downloadWithResponse
@Deprecated public BlobDownloadResponse downloadWithResponse(OutputStream stream, BlobRange range, DownloadRetryOptions options, BlobRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, com.azure.core.util.Context context) Deprecated.Downloads a range of bytes from a blob into an output stream. Uploading data must be done from theBlockBlobClient,PageBlobClient, orAppendBlobClient.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:
stream- A non-nullOutputStreaminstance where the downloaded data will be written.range-BlobRangeoptions-DownloadRetryOptionsrequestConditions-BlobRequestConditionsgetRangeContentMd5- Whether the contentMD5 for the specified blob range should be returned.timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
- Throws:
UncheckedIOException- If an I/O error occurs.NullPointerException- ifstreamis null
-
downloadStreamWithResponse
public BlobDownloadResponse downloadStreamWithResponse(OutputStream stream, BlobRange range, DownloadRetryOptions options, BlobRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, com.azure.core.util.Context context) Downloads a range of bytes from a blob into an output stream. Uploading data must be done from theBlockBlobClient,PageBlobClient, orAppendBlobClient.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:
stream- A non-nullOutputStreaminstance where the downloaded data will be written.range-BlobRangeoptions-DownloadRetryOptionsrequestConditions-BlobRequestConditionsgetRangeContentMd5- Whether the contentMD5 for the specified blob range should be returned.timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
- Throws:
UncheckedIOException- If an I/O error occurs.NullPointerException- ifstreamis null
-
downloadContentWithResponse
public BlobDownloadContentResponse downloadContentWithResponse(DownloadRetryOptions options, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Downloads a range of bytes from a blob into an output stream. Uploading data must be done from theBlockBlobClient,PageBlobClient, orAppendBlobClient.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:
options-DownloadRetryOptionsrequestConditions-BlobRequestConditionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
-
downloadContentWithResponse
public BlobDownloadContentResponse downloadContentWithResponse(DownloadRetryOptions options, BlobRequestConditions requestConditions, BlobRange range, boolean getRangeContentMd5, Duration timeout, com.azure.core.util.Context context) Downloads a range of bytes from a blob into an output stream. Uploading data must be done from theBlockBlobClient,PageBlobClient, orAppendBlobClient.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:
options-DownloadRetryOptionsrequestConditions-BlobRequestConditionsrange-BlobRangegetRangeContentMd5- Whether the contentMD5 for the specified blob range should be returned.timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
-
downloadToFile
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
FileAlreadyExistsExceptionwill be thrown.Code Samples
client.downloadToFile(file); System.out.println("Completed download to file");For more information, see the Azure Docs
- Parameters:
filePath- AStringrepresenting the filePath where the downloaded data will be written.- Returns:
- The blob properties and metadata.
- Throws:
UncheckedIOException- If an I/O error occurs
-
downloadToFile
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
FileAlreadyExistsExceptionwill 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:
filePath- AStringrepresenting the filePath where the downloaded data will be written.overwrite- Whether to overwrite the file, should the file exist.- Returns:
- The blob properties and metadata.
- Throws:
UncheckedIOException- If an I/O error occurs
-
downloadToFileWithResponse
public com.azure.core.http.rest.Response<BlobProperties> downloadToFileWithResponse(String filePath, BlobRange range, ParallelTransferOptions parallelTransferOptions, DownloadRetryOptions downloadRetryOptions, BlobRequestConditions requestConditions, boolean rangeGetContentMd5, Duration timeout, com.azure.core.util.Context context) 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
FileAlreadyExistsExceptionwill 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:
filePath- AStringrepresenting the filePath where the downloaded data will be written.range-BlobRangeparallelTransferOptions-ParallelTransferOptionsto use to download to file. Number of parallel transfers parameter is ignored.downloadRetryOptions-DownloadRetryOptionsrequestConditions-BlobRequestConditionsrangeGetContentMd5- Whether the contentMD5 for the specified blob range should be returned.timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing the blob properties and metadata.
- Throws:
UncheckedIOException- If an I/O error occurs.
-
downloadToFileWithResponse
public com.azure.core.http.rest.Response<BlobProperties> downloadToFileWithResponse(String filePath, BlobRange range, ParallelTransferOptions parallelTransferOptions, DownloadRetryOptions downloadRetryOptions, BlobRequestConditions requestConditions, boolean rangeGetContentMd5, Set<OpenOption> openOptions, Duration timeout, com.azure.core.util.Context context) 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
FileAlreadyExistsExceptionwill be thrown. To override this behavior, provide appropriateOpenOptionsCode 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:
filePath- AStringrepresenting the filePath where the downloaded data will be written.range-BlobRangeparallelTransferOptions-ParallelTransferOptionsto use to download to file. Number of parallel transfers parameter is ignored.downloadRetryOptions-DownloadRetryOptionsrequestConditions-BlobRequestConditionsrangeGetContentMd5- Whether the contentMD5 for the specified blob range should be returned.openOptions-OpenOptionsto use to configure how to open or create the file.timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing the blob properties and metadata.
- Throws:
UncheckedIOException- If an I/O error occurs.
-
downloadToFileWithResponse
public com.azure.core.http.rest.Response<BlobProperties> downloadToFileWithResponse(BlobDownloadToFileOptions options, Duration timeout, com.azure.core.util.Context context) 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
FileAlreadyExistsExceptionwill be thrown. To override this behavior, provide appropriateOpenOptionsCode 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:
options-BlobDownloadToFileOptionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing the blob properties and metadata.
- Throws:
UncheckedIOException- If an I/O error occurs.
-
delete
public void delete()Deletes the specified blob or snapshot. To delete a blob with its snapshots usedeleteWithResponse(DeleteSnapshotsOptionType, BlobRequestConditions, Duration, Context)and setDeleteSnapshotsOptionTypeto INCLUDE.Code Samples
client.delete(); System.out.println("Delete completed.");For more information, see the Azure Docs
-
deleteWithResponse
public com.azure.core.http.rest.Response<Void> deleteWithResponse(DeleteSnapshotsOptionType deleteBlobSnapshotOptions, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Deletes the specified blob or snapshot. To delete a blob with its snapshots usedeleteWithResponse(DeleteSnapshotsOptionType, BlobRequestConditions, Duration, Context)and setDeleteSnapshotsOptionTypeto 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:
deleteBlobSnapshotOptions- Specifies the behavior for deleting the snapshots on this blob.Includewill delete the base blob and all snapshots.Onlywill delete only the snapshots. If a snapshot is being deleted, you must pass null.requestConditions-BlobRequestConditionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
-
deleteIfExists
public boolean deleteIfExists()Deletes the specified blob or snapshot if it exists. To delete a blob with its snapshots usedeleteIfExistsWithResponse(DeleteSnapshotsOptionType, BlobRequestConditions, Duration, Context)and setDeleteSnapshotsOptionTypeto INCLUDE.Code Samples
boolean result = client.deleteIfExists(); System.out.println("Delete completed: " + result);For more information, see the Azure Docs
- Returns:
trueif delete succeeds, orfalseif blob does not exist.
-
deleteIfExistsWithResponse
public com.azure.core.http.rest.Response<Boolean> deleteIfExistsWithResponse(DeleteSnapshotsOptionType deleteBlobSnapshotOptions, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) Deletes the specified blob or snapshot if it exists. To delete a blob with its snapshots usedeleteIfExistsWithResponse(DeleteSnapshotsOptionType, BlobRequestConditions, Duration, Context)and setDeleteSnapshotsOptionTypeto 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:
deleteBlobSnapshotOptions- Specifies the behavior for deleting the snapshots on this blob.Includewill delete the base blob and all snapshots.Onlywill delete only the snapshots. If a snapshot is being deleted, you must pass null.requestConditions-BlobRequestConditionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers. If
Response's status code is 202, the base blob was successfully deleted. If status code is 404, the base blob does not exist.
-
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:
- The blob properties and metadata.
-
getPropertiesWithResponse
public com.azure.core.http.rest.Response<BlobProperties> getPropertiesWithResponse(BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) 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:
requestConditions-BlobRequestConditionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The blob properties and metadata.
-
setHttpHeaders
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:
headers-BlobHttpHeaders
-
setHttpHeadersWithResponse
public com.azure.core.http.rest.Response<Void> setHttpHeadersWithResponse(BlobHttpHeaders headers, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) 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:
headers-BlobHttpHeadersrequestConditions-BlobRequestConditionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
-
setMetadata
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:
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.
-
setMetadataWithResponse
public com.azure.core.http.rest.Response<Void> setMetadataWithResponse(Map<String, String> metadata, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) 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:
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.requestConditions-BlobRequestConditionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
-
getTags
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:
- The blob's tags.
-
getTagsWithResponse
public com.azure.core.http.rest.Response<Map<String,String>> getTagsWithResponse(BlobGetTagsOptions options, Duration timeout, com.azure.core.util.Context context) 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:
options-BlobGetTagsOptionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The blob's tags.
-
setTags
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:
tags- Tags to associate with the blob.
-
setTagsWithResponse
public com.azure.core.http.rest.Response<Void> setTagsWithResponse(BlobSetTagsOptions options, Duration timeout, com.azure.core.util.Context context) 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:
options-BlobSetTagsOptionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
-
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:
- A response containing a
BlobClientBasewhich is used to interact with the created snapshot, usegetSnapshotId()to get the identifier for the snapshot.
-
createSnapshotWithResponse
public com.azure.core.http.rest.Response<BlobClientBase> createSnapshotWithResponse(Map<String, String> metadata, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) 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:
metadata- Metadata to associate with the resource. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.requestConditions-BlobRequestConditionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing a
BlobClientBasewhich is used to interact with the created snapshot, usegetSnapshotId()to get the identifier for the snapshot.
-
setAccessTier
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:
tier- The new tier for the blob.
-
setAccessTierWithResponse
public com.azure.core.http.rest.Response<Void> setAccessTierWithResponse(AccessTier tier, RehydratePriority priority, String leaseId, Duration timeout, com.azure.core.util.Context context) 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:
tier- The new tier for the blob.priority- Optional priority to set for re-hydrating blobs.leaseId- The lease ID the active lease on the blob must match.timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
-
setAccessTierWithResponse
public com.azure.core.http.rest.Response<Void> setAccessTierWithResponse(BlobSetAccessTierOptions options, Duration timeout, com.azure.core.util.Context context) 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:
options-BlobSetAccessTierOptionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
-
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 com.azure.core.http.rest.Response<Void> undeleteWithResponse(Duration timeout, com.azure.core.util.Context context) 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:
timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
-
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:
- The sku name and account kind.
-
getAccountInfoWithResponse
public com.azure.core.http.rest.Response<StorageAccountInfo> getAccountInfoWithResponse(Duration timeout, com.azure.core.util.Context context) 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:
timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The sku name and account kind.
-
generateUserDelegationSas
public String generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey) Generates a user delegation SAS for the blob using the specifiedBlobServiceSasSignatureValues.See
BlobServiceSasSignatureValuesfor 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:
blobServiceSasSignatureValues-BlobServiceSasSignatureValuesuserDelegationKey- AUserDelegationKeyobject used to sign the SAS values. SeeBlobServiceClient.getUserDelegationKey(OffsetDateTime, OffsetDateTime)for more information on how to get a user delegation key.- Returns:
- A
Stringrepresenting the SAS query parameters.
-
generateUserDelegationSas
public String generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey, String accountName, com.azure.core.util.Context context) Generates a user delegation SAS for the blob using the specifiedBlobServiceSasSignatureValues.See
BlobServiceSasSignatureValuesfor 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:
blobServiceSasSignatureValues-BlobServiceSasSignatureValuesuserDelegationKey- AUserDelegationKeyobject used to sign the SAS values. SeeBlobServiceClient.getUserDelegationKey(OffsetDateTime, OffsetDateTime)for more information on how to get a user delegation key.accountName- The account name.context- Additional context that is passed through the code when generating a SAS.- Returns:
- A
Stringrepresenting the SAS query parameters.
-
generateUserDelegationSas
public String generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey, String accountName, Consumer<String> stringToSignHandler, com.azure.core.util.Context context) Generates a user delegation SAS for the blob using the specifiedBlobServiceSasSignatureValues.See
BlobServiceSasSignatureValuesfor more information on how to construct a user delegation SAS.- Parameters:
blobServiceSasSignatureValues-BlobServiceSasSignatureValuesuserDelegationKey- AUserDelegationKeyobject used to sign the SAS values. SeeBlobServiceClient.getUserDelegationKey(OffsetDateTime, OffsetDateTime)for more information on how to get a user delegation key.accountName- The account name.stringToSignHandler- For debugging purposes only. Returns the string to sign that was used to generate the signature.context- Additional context that is passed through the code when generating a SAS.- Returns:
- A
Stringrepresenting the SAS query parameters.
-
generateSas
Generates a service SAS for the blob using the specifiedBlobServiceSasSignatureValuesNote : The client must be authenticated via
StorageSharedKeyCredentialSee
BlobServiceSasSignatureValuesfor 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:
blobServiceSasSignatureValues-BlobServiceSasSignatureValues- Returns:
- A
Stringrepresenting the SAS query parameters.
-
generateSas
public String generateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, com.azure.core.util.Context context) Generates a service SAS for the blob using the specifiedBlobServiceSasSignatureValuesNote : The client must be authenticated via
StorageSharedKeyCredentialSee
BlobServiceSasSignatureValuesfor 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:
blobServiceSasSignatureValues-BlobServiceSasSignatureValuescontext- Additional context that is passed through the code when generating a SAS.- Returns:
- A
Stringrepresenting the SAS query parameters.
-
generateSas
public String generateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, Consumer<String> stringToSignHandler, com.azure.core.util.Context context) Generates a service SAS for the blob using the specifiedBlobServiceSasSignatureValuesNote : The client must be authenticated via
StorageSharedKeyCredentialSee
BlobServiceSasSignatureValuesfor more information on how to construct a service SAS.- Parameters:
blobServiceSasSignatureValues-BlobServiceSasSignatureValuesstringToSignHandler- For debugging purposes only. Returns the string to sign that was used to generate the signature.context- Additional context that is passed through the code when generating a SAS.- Returns:
- A
Stringrepresenting the SAS query parameters.
-
openQueryInputStream
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:
expression- The query expression.- Returns:
- An
InputStreamobject that represents the stream to use for reading the query response.
-
openQueryInputStreamWithResponse
public com.azure.core.http.rest.Response<InputStream> openQueryInputStreamWithResponse(BlobQueryOptions queryOptions) 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:
queryOptions-The query options.- Returns:
- A response containing status code and HTTP headers including an
InputStreamobject that represents the stream to use for reading the query response.
-
query
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:
stream- A non-nullOutputStreaminstance where the downloaded data will be written.expression- The query expression.- Throws:
UncheckedIOException- If an I/O error occurs.NullPointerException- ifstreamis null.
-
queryWithResponse
public BlobQueryResponse queryWithResponse(BlobQueryOptions queryOptions, Duration timeout, com.azure.core.util.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:
queryOptions-The query options.timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing status code and HTTP headers.
- Throws:
UncheckedIOException- If an I/O error occurs.NullPointerException- ifstreamis null.
-
setImmutabilityPolicy
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:
immutabilityPolicy-The immutability policy.- Returns:
- The immutability policy.
-
setImmutabilityPolicyWithResponse
public com.azure.core.http.rest.Response<BlobImmutabilityPolicy> setImmutabilityPolicyWithResponse(BlobImmutabilityPolicy immutabilityPolicy, BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context) 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:
immutabilityPolicy-The immutability policy.requestConditions-BlobRequestConditionstimeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing the immutability policy.
-
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 com.azure.core.http.rest.Response<Void> deleteImmutabilityPolicyWithResponse(Duration timeout, com.azure.core.util.Context context) 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:
timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing the immutability policy.
-
setLegalHold
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:
legalHold- Whether you want a legal hold on the blob.- Returns:
- The legal hold result.
-
setLegalHoldWithResponse
public com.azure.core.http.rest.Response<BlobLegalHoldResult> setLegalHoldWithResponse(boolean legalHold, Duration timeout, com.azure.core.util.Context context) 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:
legalHold- Whether you want a legal hold on the blob.timeout- An optional timeout value beyond which aRuntimeExceptionwill be raised.context- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A response containing the legal hold result.
-
downloadStream(OutputStream)instead.