Skip to content

Storage - Stg104 MD5/CRC64 Combined Return #49177

Open
browndav-msft wants to merge 20 commits into
Azure:feature/storage/stg104basefrom
browndav-msft:stg104/md5Crc64Merge
Open

Storage - Stg104 MD5/CRC64 Combined Return #49177
browndav-msft wants to merge 20 commits into
Azure:feature/storage/stg104basefrom
browndav-msft:stg104/md5Crc64Merge

Conversation

@browndav-msft
Copy link
Copy Markdown
Member

This change enables the service to return both MD5 and CRC64 checksum values for blob upload APIs when the client provides a Content-MD5 header, instead of returning only MD5.

The behavior is gated behind API version 2026-10-06+, and is designed to support ODSP’s migration from MD5 → CRC64 without requiring additional read-backs.

Goal of this change:

Allow clients to obtain both checksums in a single request
Simplify MD5 → CRC64 migration
Eliminate unnecessary blob reads

@github-actions github-actions Bot added the Storage Storage Service (Queues, Blobs, Files) label May 13, 2026
@browndav-msft browndav-msft force-pushed the stg104/md5Crc64Merge branch from ae26ca1 to e2225d6 Compare May 13, 2026 23:36
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds CRC64 exposure alongside existing MD5 information for blob upload-related responses in azure-storage-blob, with tests gated for service version 2026-10-06+.

Changes:

  • Adds getContentCrc64() to append, block, and page blob item models.
  • Maps x-ms-content-crc64 response headers into those models for selected upload operations.
  • Updates tests and recordings to validate CRC64 response mapping for several sync/async upload paths.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
sdk/storage/azure-storage-blob/swagger/README.md Updates swagger input file source/version.
sdk/storage/azure-storage-blob/assets.json Updates test asset recording tag.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/models/AppendBlobItem.java Adds CRC64 storage and getter.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/models/BlockBlobItem.java Adds CRC64 storage and getter.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/models/PageBlobItem.java Adds CRC64 storage and getter.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/implementation/accesshelpers/AppendBlobItemConstructorProxy.java Adds internal constructor accessor for append blob CRC64.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/implementation/accesshelpers/BlockBlobItemConstructorProxy.java Adds internal constructor accessor for block blob CRC64.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/implementation/accesshelpers/PageBlobItemConstructorProxy.java Adds internal constructor accessor for page blob CRC64.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/implementation/models/BlockBlobsUploadHeaders.java Parses x-ms-content-crc64 for block blob upload responses.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/implementation/models/BlockBlobsPutBlobFromUrlHeaders.java Parses x-ms-content-crc64 for block blob upload-from-URL responses.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/specialized/AppendBlobAsyncClient.java Maps append upload CRC64 headers into AppendBlobItem.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/specialized/BlockBlobAsyncClient.java Maps block upload CRC64 headers into BlockBlobItem.
sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/specialized/PageBlobAsyncClient.java Maps page upload CRC64 headers into PageBlobItem.
sdk/storage/azure-storage-blob/src/test/java/com/azure/storage/blob/specialized/AppendBlobApiTests.java Adds sync append CRC64 assertions.
sdk/storage/azure-storage-blob/src/test/java/com/azure/storage/blob/specialized/AppendBlobAsyncApiTests.java Adds async append CRC64 assertions.
sdk/storage/azure-storage-blob/src/test/java/com/azure/storage/blob/specialized/BlockBlobApiTests.java Adds sync block CRC64 assertions.
sdk/storage/azure-storage-blob/src/test/java/com/azure/storage/blob/specialized/BlockBlobAsyncApiTests.java Adds async block CRC64 assertions.
sdk/storage/azure-storage-blob/src/test/java/com/azure/storage/blob/specialized/PageBlobApiTests.java Adds sync page CRC64 assertions.
sdk/storage/azure-storage-blob/src/test/java/com/azure/storage/blob/specialized/PageBlobAsyncApiTests.java Adds async page CRC64 assertions.

Comment thread sdk/storage/azure-storage-blob/swagger/README.md
@browndav-msft browndav-msft marked this pull request as ready for review May 19, 2026 15:39
@ibrandes ibrandes changed the title Stg104/md5 crc64 merge Storage - Stg104 MD5/CRC64 Combined Return May 19, 2026
Copy link
Copy Markdown
Member

@ibrandes ibrandes left a comment

Choose a reason for hiding this comment

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

looks good! just a couple nits / questions.

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