Skip to content

[Storage] [STG104] Combined MD5/CRC64 Response, Smart Access Tier#4721

Open
vincenttran-msft wants to merge 11 commits into
Azure:mainfrom
vincenttran-msft:vincenttran/stg_104
Open

[Storage] [STG104] Combined MD5/CRC64 Response, Smart Access Tier#4721
vincenttran-msft wants to merge 11 commits into
Azure:mainfrom
vincenttran-msft:vincenttran/stg_104

Conversation

@vincenttran-msft

@vincenttran-msft vincenttran-msft commented Jul 8, 2026

Copy link
Copy Markdown
Member

[DO NOT MERGE] Holding off until we cut a release in between, which we will then have to bump this to next release version

  • Update STG work to next version

@github-actions github-actions Bot added the Storage Storage Service (Queues, Blobs, Files) label Jul 8, 2026
Comment thread sdk/storage/azure_storage_blob/tests/blob_client.rs Outdated
Comment thread sdk/storage/azure_storage_blob/CHANGELOG.md Outdated
@vincenttran-msft
vincenttran-msft marked this pull request as ready for review July 21, 2026 18:06
Copilot AI review requested due to automatic review settings July 21, 2026 18:06
@azure-pipelines

Copy link
Copy Markdown
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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread sdk/storage/azure_storage_blob/CHANGELOG.md
Comment thread sdk/storage/azure_storage_blob/CHANGELOG.md
Comment thread sdk/storage/azure_storage_blob/tests/blob_client.rs
Comment thread sdk/storage/azure_storage_blob/tests/blob_client.rs
Copilot AI review requested due to automatic review settings July 21, 2026 21:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 AccessTier and ArchiveStatus enums (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 every upload call.
- 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`.

Comment thread sdk/storage/azure_storage_blob/src/models/download_result.rs
Copilot AI review requested due to automatic review settings July 21, 2026 22:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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::RehydratePendingToSmart variant and BlobProperties::smart_access_tier field, 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 at tests/block_blob_client.rs:434-435 explicitly documents that partitioned uploads committed via Put Block List do not return CRC64. Since upload automatically 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`.

Comment thread sdk/storage/azure_storage_blob/tests/block_blob_client.rs
Copilot AI review requested due to automatic review settings July 22, 2026 18:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 upload claim needs the single-shot qualification documented by the new test: partitioned uploads finish with Put Block List and do not return content_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`.

Comment on lines +8 to +9
- Added support for `Smart` access tier.
- Added `access_tier`, `access_tier_changed_on`, `access_tier_inferred`, and `smart_access_tier` to `BlobDownloadProperties`.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Storage Storage Service (Queues, Blobs, Files)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants