[Storage] [STG104] Combined MD5/CRC64 Response, Smart Access Tier#4721
[Storage] [STG104] Combined MD5/CRC64 Response, Smart Access Tier#4721vincenttran-msft wants to merge 11 commits into
Conversation
|
Azure Pipelines: Successfully started running 1 pipeline(s). 2 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Pull request overview
Updates Blob Storage for API version 2026-10-06, adding Smart access tiers and combined MD5/CRC64 responses.
Changes:
- Adds Smart-tier enums, properties, headers, and download metadata.
- Surfaces CRC64 alongside MD5 for supported upload operations.
- Updates integration recordings and checksum/Smart-tier coverage.
Reviewed changes
Copilot reviewed 8 out of 18 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
sdk/storage/azure_storage_blob/tsp-location.yaml |
Pins the updated storage specification. |
sdk/storage/azure_storage_blob/tests/page_blob_client.rs |
Tests page-upload checksums. |
sdk/storage/azure_storage_blob/tests/block_blob_client.rs |
Tests block-upload checksums. |
sdk/storage/azure_storage_blob/tests/blob_client.rs |
Tests ranged checksums and Smart tiers. |
sdk/storage/azure_storage_blob/tests/append_blob_client.rs |
Tests append-upload checksums. |
sdk/storage/azure_storage_blob/src/models/download_result.rs |
Exposes access-tier download metadata. |
sdk/storage/azure_storage_blob/src/generated/models/models.rs |
Adds Smart tier to blob properties. |
sdk/storage/azure_storage_blob/src/generated/models/header_traits.rs |
Adds tier and CRC64 header accessors. |
sdk/storage/azure_storage_blob/src/generated/models/enums.rs |
Adds Smart tier enum variants. |
sdk/storage/azure_storage_blob/src/generated/models/enums_impl.rs |
Implements Smart tier conversions. |
sdk/storage/azure_storage_blob/src/generated/clients/page_blob_client.rs |
Updates the default API version. |
sdk/storage/azure_storage_blob/src/generated/clients/block_blob_client.rs |
Updates version and CRC64 documentation. |
sdk/storage/azure_storage_blob/src/generated/clients/blob_service_client.rs |
Updates the default API version. |
sdk/storage/azure_storage_blob/src/generated/clients/blob_container_client.rs |
Updates the default API version. |
sdk/storage/azure_storage_blob/src/generated/clients/blob_client.rs |
Documents tier headers and updates version. |
sdk/storage/azure_storage_blob/src/generated/clients/append_blob_client.rs |
Updates the default API version. |
sdk/storage/azure_storage_blob/CHANGELOG.md |
Documents the release changes. |
sdk/storage/azure_storage_blob/assets.json |
Updates recorded test assets. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 18 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (2)
sdk/storage/azure_storage_blob/CHANGELOG.md:8
- This also adds variants to the exhaustive public
AccessTierandArchiveStatusenums (src/generated/models/enums.rs:8,85; neither is#[non_exhaustive]). That breaks downstream exhaustive matches, so the release notes must identify the new variants under Breaking Changes rather than presenting this only as a feature.
- Added support for `Smart` access tier.
sdk/storage/azure_storage_blob/CHANGELOG.md:10
- This overstates
upload: its public options do not expose a transactional content MD5, and the new test calls it without any MD5 and only observes CRC64 for single-shot Put Blob; partitioned uploads return no CRC64. Clarify that limitation so consumers do not expect the documented combined response from everyuploadcall.
- The service-calculated CRC64 is now surfaced as `content_crc64` on upload responses, alongside `content_md5`, when a content MD5 is provided with the request. This applies to `stage_block`, `stage_block_from_url`, `upload_pages`, `upload_pages_from_url`, `append_block`, `append_block_from_url`, `upload` and `upload_blob_from_url`.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 9 out of 19 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (2)
sdk/storage/azure_storage_blob/CHANGELOG.md:8
- The Smart-tier update also adds the public
ArchiveStatus::RehydratePendingToSmartvariant andBlobProperties::smart_access_tierfield, but this release note omits both. The changelog guideline requires every public API change to be summarized; include these APIs explicitly.
- Added support for `Smart` access tier.
sdk/storage/azure_storage_blob/CHANGELOG.md:10
- This claim is too broad for
upload: the new test attests/block_blob_client.rs:434-435explicitly documents that partitioned uploads committed via Put Block List do not return CRC64. Sinceuploadautomatically chooses that path based on size/options, qualify it as single-shot only.
- The service-calculated CRC64 is now surfaced as `content_crc64` on upload responses, alongside `content_md5`, when a content MD5 is provided with the request. This applies to `stage_block`, `stage_block_from_url`, `upload_pages`, `upload_pages_from_url`, `append_block`, `append_block_from_url`, `upload` and `upload_blob_from_url`.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 9 out of 19 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
sdk/storage/azure_storage_blob/CHANGELOG.md:10
- The
uploadclaim needs the single-shot qualification documented by the new test: partitioned uploads finish with Put Block List and do not returncontent_crc64. Without this caveat, callers may incorrectly expect this field to be populated for large uploads.
- The service-calculated CRC64 is now surfaced as `content_crc64` on upload responses, alongside `content_md5`, when a content MD5 is provided with the request. This applies to `stage_block`, `stage_block_from_url`, `upload_pages`, `upload_pages_from_url`, `append_block`, `append_block_from_url`, `upload` and `upload_blob_from_url`.
| - Added support for `Smart` access tier. | ||
| - Added `access_tier`, `access_tier_changed_on`, `access_tier_inferred`, and `smart_access_tier` to `BlobDownloadProperties`. |
There was a problem hiding this comment.
@heaths Heath thoughts on this? Quite an unfortunate discovery but I think the right move here is to add #[non_exhaustive] and take the breaking change (as this would also enable future additions to be non-breaking).
[DO NOT MERGE] Holding off until we cut a release in between, which we will then have to bump this to next release version