Skip to content

Commit 791a456

Browse files
[Storage] Prepare azure_storage_blob for v0.3.0 release (#2791)
1 parent ff85ac8 commit 791a456

File tree

11 files changed

+68
-90
lines changed

11 files changed

+68
-90
lines changed

sdk/storage/azure_storage_blob/CHANGELOG.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
# Release History
22

3-
## 0.3.0 (Unreleased)
3+
## 0.3.0 (2025-07-15)
44

55
### Features Added
66

7-
### Breaking Changes
8-
9-
### Bugs Fixed
10-
11-
### Other Changes
7+
* Added lease support (`acquire_lease`, `break_lease`, `change_lease`, `release_lease`, and `renew_lease`) to `BlobContainerClient` and `BlobClient`.
8+
* Added two new blob client types, `AppendBlobClient` and `PageBlobClient`.
9+
* Added support for `list_containers` to `BlobServiceClient`.
1210

1311
## 0.2.0 (2025-06-10)
1412

@@ -20,7 +18,7 @@
2018
* `BlobContainerClient::blob_client()`
2119
* `BlobClient::block_blob_client()`
2220

23-
* Added support for `list_blobs`, `set_metadata` to `ContainerClient`.
21+
* Added support for `list_blobs`, `set_metadata` to `BlobContainerClient`.
2422
* Added support for `set_metadata`, `set_properties`, and `set_tier` to `BlobClient`.
2523

2624
### Breaking Changes

sdk/storage/azure_storage_blob/src/clients/append_blob_client.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ impl AppendBlobClient {
9595
/// # Arguments
9696
///
9797
/// * `content_length` - Total length of the blob data to be uploaded.
98-
/// * `options` - Optional configuration for the request.
98+
/// * `options` - Optional configuration for the request. See [`AppendBlobClientCreateOptionsExt`](crate::models::AppendBlobClientCreateOptionsExt) for additional usage helpers.
9999
pub async fn create(
100100
&self,
101101
options: Option<AppendBlobClientCreateOptions<'_>>,
@@ -144,7 +144,7 @@ impl AppendBlobClient {
144144
///
145145
/// # Arguments
146146
///
147-
/// * `options` - Optional parameters for the request.
147+
/// * `options` - Optional configuration for the request.
148148
pub async fn seal(
149149
&self,
150150
options: Option<AppendBlobClientSealOptions<'_>>,

sdk/storage/azure_storage_blob/src/clients/blob_client.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use crate::{
1010
BlockBlobClientStageBlockResult, BlockBlobClientUploadResult,
1111
},
1212
models::{
13-
AccessTierOptional, BlobClientAcquireLeaseOptions, BlobClientBreakLeaseOptions,
13+
AccessTier, BlobClientAcquireLeaseOptions, BlobClientBreakLeaseOptions,
1414
BlobClientChangeLeaseOptions, BlobClientDeleteOptions, BlobClientDownloadOptions,
1515
BlobClientGetPropertiesOptions, BlobClientReleaseLeaseOptions, BlobClientRenewLeaseOptions,
1616
BlobClientSetMetadataOptions, BlobClientSetPropertiesOptions, BlobClientSetTierOptions,
@@ -230,7 +230,7 @@ impl BlobClient {
230230
/// * `options` - Optional configuration for the request.
231231
pub async fn set_tier(
232232
&self,
233-
tier: AccessTierOptional,
233+
tier: AccessTier,
234234
options: Option<BlobClientSetTierOptions<'_>>,
235235
) -> Result<Response<(), NoFormat>> {
236236
self.client.set_tier(tier, options).await

sdk/storage/azure_storage_blob/src/clients/page_blob_client.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ impl PageBlobClient {
9696
///
9797
/// * `content_length` - The maximum size for the Page blob, up to 1TB. The page blob size must
9898
/// be aligned to a 512-byte boundary.
99-
/// * `options` - Optional parameters for the request. See [`PageBlobClientCreateOptionsExt`](crate::models::PageBlobClientCreateOptionsExt) for additional usage helpers.
99+
/// * `options` - Optional configuration for the request. See [`PageBlobClientCreateOptionsExt`](crate::models::PageBlobClientCreateOptionsExt) for additional usage helpers.
100100
pub async fn create(
101101
&self,
102102
content_length: u64,
@@ -110,7 +110,7 @@ impl PageBlobClient {
110110
/// # Arguments
111111
///
112112
/// * `range` - The range of bytes to clear. See [`format_page_range()`](crate::format_page_range) for help with the expected String format.
113-
/// * `options` - Optional parameters for the request.
113+
/// * `options` - Optional configuration for the request.
114114
pub async fn clear_page(
115115
&self,
116116
range: String,
@@ -126,7 +126,7 @@ impl PageBlobClient {
126126
///
127127
/// * `size` - Size used to resize the blob. Maximum size for a page Blob is up to 1TB. The
128128
/// Page blob size must be aligned to a 512-byte boundary.
129-
/// * `options` - Optional parameters for the request.
129+
/// * `options` - Optional configuration for the request.
130130
pub async fn resize(
131131
&self,
132132
size: u64,
@@ -143,7 +143,7 @@ impl PageBlobClient {
143143
/// * `content_length` - Number of bytes to use for writing to a section of the blob. The
144144
/// content_length specified must be a modulus of 512.
145145
/// * `range` - The range of the bytes to write. See [`format_page_range()`](crate::format_page_range) for help with the expected String format.
146-
/// * `options` - Optional parameters for the request.
146+
/// * `options` - Optional configuration for the request.
147147
pub async fn upload_page(
148148
&self,
149149
data: RequestContent<Bytes>,

sdk/storage/azure_storage_blob/src/generated/clients/blob_client.rs

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/storage/azure_storage_blob/src/generated/models/enums.rs

Lines changed: 0 additions & 35 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/storage/azure_storage_blob/src/generated/models/method_options.rs

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/storage/azure_storage_blob/src/models/extensions.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33

44
use crate::models::{AppendBlobClientCreateOptions, PageBlobClientCreateOptions};
55

6+
/// Provides usage helpers for setting the `PageBlobClientCreateOptions` optional configurations.
67
pub trait PageBlobClientCreateOptionsExt {
7-
/// Augments the current options bag to only create if the page blob does not already exists.
8+
/// Augments the current options bag to only create if the Page blob does not already exist.
89
/// # Arguments
910
///
1011
/// * `self` - The options bag to be modified.
@@ -20,8 +21,9 @@ impl PageBlobClientCreateOptionsExt for PageBlobClientCreateOptions<'_> {
2021
}
2122
}
2223

24+
/// Provides usage helpers for setting the `AppendBlobClientCreateOptions` optional configurations.
2325
pub trait AppendBlobClientCreateOptionsExt {
24-
/// Augments the current options bag to only create if the append blob does not already exists.
26+
/// Augments the current options bag to only create if the Append blob does not already exist.
2527
/// # Arguments
2628
///
2729
/// * `self` - The options bag to be modified.

sdk/storage/azure_storage_blob/src/models/mod.rs

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,45 @@
44
mod extensions;
55

66
pub use crate::generated::models::{
7-
AccessTierOptional, AppendBlobClientAppendBlockFromUrlOptions,
8-
AppendBlobClientAppendBlockFromUrlResult, AppendBlobClientAppendBlockOptions,
9-
AppendBlobClientAppendBlockResult, AppendBlobClientCreateOptions, AppendBlobClientCreateResult,
10-
AppendBlobClientSealOptions, AppendBlobClientSealResult, ArchiveStatus,
11-
BlobClientAcquireLeaseOptions, BlobClientAcquireLeaseResultHeaders,
12-
BlobClientBreakLeaseOptions, BlobClientChangeLeaseOptions, BlobClientChangeLeaseResultHeaders,
13-
BlobClientDeleteOptions, BlobClientDownloadOptions, BlobClientDownloadResult,
14-
BlobClientDownloadResultHeaders, BlobClientGetPropertiesOptions, BlobClientGetPropertiesResult,
15-
BlobClientGetPropertiesResultHeaders, BlobClientReleaseLeaseOptions,
16-
BlobClientRenewLeaseOptions, BlobClientSetMetadataOptions, BlobClientSetPropertiesOptions,
17-
BlobClientSetTierOptions, BlobContainerClientAcquireLeaseOptions,
7+
AccessTier, AppendBlobClientAppendBlockFromUrlOptions,
8+
AppendBlobClientAppendBlockFromUrlResult, AppendBlobClientAppendBlockFromUrlResultHeaders,
9+
AppendBlobClientAppendBlockOptions, AppendBlobClientAppendBlockResult,
10+
AppendBlobClientAppendBlockResultHeaders, AppendBlobClientCreateOptions,
11+
AppendBlobClientCreateResult, AppendBlobClientCreateResultHeaders, AppendBlobClientSealOptions,
12+
AppendBlobClientSealResult, AppendBlobClientSealResultHeaders, ArchiveStatus,
13+
BlobClientAcquireLeaseOptions, BlobClientAcquireLeaseResult,
14+
BlobClientAcquireLeaseResultHeaders, BlobClientBreakLeaseOptions, BlobClientBreakLeaseResult,
15+
BlobClientBreakLeaseResultHeaders, BlobClientChangeLeaseOptions, BlobClientChangeLeaseResult,
16+
BlobClientChangeLeaseResultHeaders, BlobClientDeleteOptions, BlobClientDownloadOptions,
17+
BlobClientDownloadResult, BlobClientDownloadResultHeaders, BlobClientGetPropertiesOptions,
18+
BlobClientGetPropertiesResult, BlobClientGetPropertiesResultHeaders,
19+
BlobClientReleaseLeaseOptions, BlobClientReleaseLeaseResult,
20+
BlobClientReleaseLeaseResultHeaders, BlobClientRenewLeaseOptions, BlobClientRenewLeaseResult,
21+
BlobClientRenewLeaseResultHeaders, BlobClientSetMetadataOptions,
22+
BlobClientSetPropertiesOptions, BlobClientSetTierOptions,
23+
BlobContainerClientAcquireLeaseOptions, BlobContainerClientAcquireLeaseResult,
1824
BlobContainerClientAcquireLeaseResultHeaders, BlobContainerClientBreakLeaseOptions,
19-
BlobContainerClientChangeLeaseOptions, BlobContainerClientChangeLeaseResultHeaders,
20-
BlobContainerClientCreateOptions, BlobContainerClientDeleteOptions,
21-
BlobContainerClientGetPropertiesOptions, BlobContainerClientGetPropertiesResult,
22-
BlobContainerClientGetPropertiesResultHeaders, BlobContainerClientListBlobFlatSegmentOptions,
23-
BlobContainerClientReleaseLeaseOptions, BlobContainerClientRenewLeaseOptions,
25+
BlobContainerClientBreakLeaseResult, BlobContainerClientBreakLeaseResultHeaders,
26+
BlobContainerClientChangeLeaseOptions, BlobContainerClientChangeLeaseResult,
27+
BlobContainerClientChangeLeaseResultHeaders, BlobContainerClientCreateOptions,
28+
BlobContainerClientDeleteOptions, BlobContainerClientGetPropertiesOptions,
29+
BlobContainerClientGetPropertiesResult, BlobContainerClientGetPropertiesResultHeaders,
30+
BlobContainerClientListBlobFlatSegmentOptions, BlobContainerClientReleaseLeaseOptions,
31+
BlobContainerClientReleaseLeaseResult, BlobContainerClientReleaseLeaseResultHeaders,
32+
BlobContainerClientRenewLeaseOptions, BlobContainerClientRenewLeaseResult,
2433
BlobContainerClientSetMetadataOptions, BlobImmutabilityPolicyMode,
2534
BlobServiceClientGetPropertiesOptions, BlobServiceClientListContainersSegmentOptions, BlobType,
2635
BlockBlobClientCommitBlockListOptions, BlockBlobClientCommitBlockListResult,
27-
BlockBlobClientGetBlockListOptions, BlockBlobClientStageBlockOptions,
28-
BlockBlobClientStageBlockResult, BlockBlobClientUploadOptions, BlockBlobClientUploadResult,
29-
BlockList, BlockListType, BlockLookupList, CopyStatus, LeaseState, LeaseStatus,
30-
ListBlobsFlatSegmentResponse, ListContainersSegmentResponse, PageBlobClientClearPagesOptions,
31-
PageBlobClientClearPagesResult, PageBlobClientCreateOptions, PageBlobClientCreateResult,
32-
PageBlobClientResizeOptions, PageBlobClientResizeResult, PageBlobClientUploadPagesOptions,
33-
PageBlobClientUploadPagesResult, PublicAccessType, RehydratePriority, StorageServiceProperties,
36+
BlockBlobClientCommitBlockListResultHeaders, BlockBlobClientGetBlockListOptions,
37+
BlockBlobClientStageBlockOptions, BlockBlobClientStageBlockResult,
38+
BlockBlobClientStageBlockResultHeaders, BlockBlobClientUploadOptions,
39+
BlockBlobClientUploadResult, BlockBlobClientUploadResultHeaders, BlockList, BlockListType,
40+
BlockLookupList, CopyStatus, LeaseState, LeaseStatus, ListBlobsFlatSegmentResponse,
41+
ListContainersSegmentResponse, PageBlobClientClearPagesOptions, PageBlobClientClearPagesResult,
42+
PageBlobClientClearPagesResultHeaders, PageBlobClientCreateOptions, PageBlobClientCreateResult,
43+
PageBlobClientCreateResultHeaders, PageBlobClientResizeOptions, PageBlobClientResizeResult,
44+
PageBlobClientResizeResultHeaders, PageBlobClientUploadPagesOptions,
45+
PageBlobClientUploadPagesResult, PageBlobClientUploadPagesResultHeaders, PublicAccessType,
46+
RehydratePriority, StorageServiceProperties,
3447
};
3548
pub use extensions::*;

sdk/storage/azure_storage_blob/tests/blob_client.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use azure_core::{
77
};
88
use azure_core_test::{recorded, TestContext};
99
use azure_storage_blob::models::{
10-
AccessTierOptional, BlobClientAcquireLeaseResultHeaders, BlobClientChangeLeaseResultHeaders,
10+
AccessTier, BlobClientAcquireLeaseResultHeaders, BlobClientChangeLeaseResultHeaders,
1111
BlobClientDownloadOptions, BlobClientDownloadResultHeaders, BlobClientGetPropertiesOptions,
1212
BlobClientGetPropertiesResultHeaders, BlobClientSetMetadataOptions,
1313
BlobClientSetPropertiesOptions, BlobClientSetTierOptions, BlockBlobClientUploadOptions,
@@ -266,15 +266,15 @@ async fn test_set_access_tier(ctx: TestContext) -> Result<(), Box<dyn Error>> {
266266

267267
let original_response = blob_client.get_properties(None).await?;
268268
let og_access_tier = original_response.access_tier()?;
269-
assert_eq!(AccessTierOptional::Hot.to_string(), og_access_tier.unwrap());
269+
assert_eq!(AccessTier::Hot.to_string(), og_access_tier.unwrap());
270270

271271
// Set Standard Blob Tier (Cold)
272-
blob_client.set_tier(AccessTierOptional::Cold, None).await?;
272+
blob_client.set_tier(AccessTier::Cold, None).await?;
273273
let response = blob_client.get_properties(None).await?;
274274

275275
// Assert
276276
let access_tier = response.access_tier()?;
277-
assert_eq!(AccessTierOptional::Cold.to_string(), access_tier.unwrap());
277+
assert_eq!(AccessTier::Cold.to_string(), access_tier.unwrap());
278278

279279
container_client.delete_container(None).await?;
280280
Ok(())
@@ -371,7 +371,7 @@ async fn test_leased_blob_operations(ctx: TestContext) -> Result<(), Box<dyn Err
371371
..Default::default()
372372
};
373373
blob_client
374-
.set_tier(AccessTierOptional::Cold, Some(set_tier_options))
374+
.set_tier(AccessTier::Cold, Some(set_tier_options))
375375
.await?;
376376

377377
// Assert
@@ -390,7 +390,7 @@ async fn test_leased_blob_operations(ctx: TestContext) -> Result<(), Box<dyn Err
390390
assert_eq!("spanish".to_string(), content_language.unwrap());
391391
assert_eq!("inline".to_string(), content_disposition.unwrap());
392392
assert_eq!(update_metadata, response_metadata);
393-
assert_eq!(AccessTierOptional::Cold.to_string(), access_tier.unwrap());
393+
assert_eq!(AccessTier::Cold.to_string(), access_tier.unwrap());
394394

395395
// Overwrite Upload
396396
let data = b"overruled!";

0 commit comments

Comments
 (0)