Skip to content

Commit e3e89a5

Browse files
[Storage] get_page_ranges, update_sequence_number and upload_pages_from_url for PageBlobClient (#2835)
1 parent 013ed41 commit e3e89a5

File tree

10 files changed

+238
-111
lines changed

10 files changed

+238
-111
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"AssetsRepo": "Azure/azure-sdk-assets",
33
"AssetsRepoPrefixPath": "rust",
4-
"Tag": "rust/azure_storage_blob_f12afa9550",
4+
"Tag": "rust/azure_storage_blob_873d66a4ea",
55
"TagPrefix": "rust/azure_storage_blob"
66
}

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

Lines changed: 59 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@ use crate::{
55
generated::clients::PageBlobClient as GeneratedPageBlobClient,
66
models::{
77
PageBlobClientClearPagesOptions, PageBlobClientClearPagesResult,
8-
PageBlobClientCreateOptions, PageBlobClientCreateResult, PageBlobClientResizeOptions,
9-
PageBlobClientResizeResult, PageBlobClientUploadPagesOptions,
10-
PageBlobClientUploadPagesResult,
8+
PageBlobClientCreateOptions, PageBlobClientCreateResult,
9+
PageBlobClientGetPageRangesOptions, PageBlobClientResizeOptions,
10+
PageBlobClientResizeResult, PageBlobClientSetSequenceNumberOptions,
11+
PageBlobClientSetSequenceNumberResult, PageBlobClientUploadPagesFromUrlOptions,
12+
PageBlobClientUploadPagesFromUrlResult, PageBlobClientUploadPagesOptions,
13+
PageBlobClientUploadPagesResult, PageList, SequenceNumberActionType,
1114
},
1215
pipeline::StorageHeadersPolicy,
1316
BlobClientOptions, PageBlobClientOptions,
@@ -16,7 +19,7 @@ use azure_core::{
1619
credentials::TokenCredential,
1720
http::{
1821
policies::{BearerTokenCredentialPolicy, Policy},
19-
NoFormat, RequestContent, Response, Url,
22+
NoFormat, RequestContent, Response, Url, XmlFormat,
2023
},
2124
Bytes, Result,
2225
};
@@ -146,4 +149,56 @@ impl PageBlobClient {
146149
.upload_pages(data, content_length, range, options)
147150
.await
148151
}
152+
153+
/// Sets the blob's sequence number. The operation will fail if the specified sequence
154+
/// number is less than the current sequence number of the blob.
155+
///
156+
/// # Arguments
157+
///
158+
/// * `sequence_number_action` - This property indicates how the service should modify the blob's sequence number. See
159+
/// [SequenceNumberActionType](crate::models::SequenceNumberActionType) for more information.
160+
/// * `options` - Optional parameters for the request.
161+
pub async fn set_sequence_number(
162+
&self,
163+
sequence_number_action: SequenceNumberActionType,
164+
options: Option<PageBlobClientSetSequenceNumberOptions<'_>>,
165+
) -> Result<Response<PageBlobClientSetSequenceNumberResult, NoFormat>> {
166+
self.client
167+
.set_sequence_number(sequence_number_action, options)
168+
.await
169+
}
170+
171+
/// Writes a range of pages to a Page blob where the contents are read from a URL.
172+
///
173+
/// # Arguments
174+
///
175+
/// * `source_url` - The URL of the copy source.
176+
/// * `source_range` - Range of bytes from the source to be uploaded. See [`format_page_range()`](crate::format_page_range) for help with the expected String format.
177+
/// * `content_length` - Total length of the blob data to be uploaded.
178+
/// * `range` - Range of bytes where the source data should be written on the destination Page blob. See [`format_page_range()`](crate::format_page_range) for help with the expected String format.
179+
/// * `options` - Optional parameters for the request.
180+
pub async fn upload_pages_from_url(
181+
&self,
182+
source_url: String,
183+
source_range: String,
184+
content_length: u64,
185+
range: String,
186+
options: Option<PageBlobClientUploadPagesFromUrlOptions<'_>>,
187+
) -> Result<Response<PageBlobClientUploadPagesFromUrlResult, NoFormat>> {
188+
self.client
189+
.upload_pages_from_url(source_url, source_range, content_length, range, options)
190+
.await
191+
}
192+
193+
/// Returns the list of valid page ranges for a Page blob.
194+
///
195+
/// # Arguments
196+
///
197+
/// * `options` - Optional parameters for the request.
198+
pub async fn get_page_ranges(
199+
&self,
200+
options: Option<PageBlobClientGetPageRangesOptions<'_>>,
201+
) -> Result<Response<PageList, XmlFormat>> {
202+
self.client.get_page_ranges(options).await
203+
}
149204
}

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

Lines changed: 5 additions & 5 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/header_traits.rs

Lines changed: 7 additions & 19 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: 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/pub_models.rs

Lines changed: 6 additions & 19 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/xml_helpers.rs

Lines changed: 1 addition & 55 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/mod.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,13 @@ pub use crate::generated::models::{
4343
ListContainersIncludeType, ListContainersSegmentResponse, Logging, Metrics,
4444
ObjectReplicationMetadata, PageBlobClientClearPagesOptions, PageBlobClientClearPagesResult,
4545
PageBlobClientClearPagesResultHeaders, PageBlobClientCreateOptions, PageBlobClientCreateResult,
46-
PageBlobClientCreateResultHeaders, PageBlobClientResizeOptions, PageBlobClientResizeResult,
47-
PageBlobClientResizeResultHeaders, PageBlobClientUploadPagesOptions,
48-
PageBlobClientUploadPagesResult, PageBlobClientUploadPagesResultHeaders,
49-
PremiumPageBlobAccessTier, PublicAccessType, RehydratePriority, RetentionPolicy, StaticWebsite,
50-
StorageServiceProperties,
46+
PageBlobClientCreateResultHeaders, PageBlobClientGetPageRangesOptions,
47+
PageBlobClientResizeOptions, PageBlobClientResizeResult, PageBlobClientResizeResultHeaders,
48+
PageBlobClientSetSequenceNumberOptions, PageBlobClientSetSequenceNumberResult,
49+
PageBlobClientSetSequenceNumberResultHeaders, PageBlobClientUploadPagesFromUrlOptions,
50+
PageBlobClientUploadPagesFromUrlResult, PageBlobClientUploadPagesOptions,
51+
PageBlobClientUploadPagesResult, PageBlobClientUploadPagesResultHeaders, PageList,
52+
PremiumPageBlobAccessTier, PublicAccessType, RehydratePriority, RetentionPolicy,
53+
SequenceNumberActionType, StaticWebsite, StorageServiceProperties,
5154
};
5255
pub use extensions::*;

0 commit comments

Comments
 (0)