Skip to content

Commit 9dc48c6

Browse files
committed
Compatibility improvement for striped blob
1 parent 3fec13f commit 9dc48c6

File tree

2 files changed

+35
-6
lines changed

2 files changed

+35
-6
lines changed

sdk/storage/azure-storage-blobs/src/rest_client.cpp

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6023,8 +6023,11 @@ namespace Azure { namespace Storage { namespace Blobs {
60236023
= Core::Convert::Base64Decode(pRawResponse->GetHeaders().at("x-ms-content-crc64"));
60246024
response.TransactionalContentHash.Value().Algorithm = HashAlgorithm::Crc64;
60256025
}
6026-
response.SequenceNumber
6027-
= std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number"));
6026+
if (pRawResponse->GetHeaders().count("x-ms-blob-sequence-number") != 0)
6027+
{
6028+
response.SequenceNumber
6029+
= std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number"));
6030+
}
60286031
response.IsServerEncrypted
60296032
= pRawResponse->GetHeaders().at("x-ms-request-server-encrypted") == std::string("true");
60306033
if (pRawResponse->GetHeaders().count("x-ms-encryption-key-sha256") != 0)
@@ -6132,8 +6135,11 @@ namespace Azure { namespace Storage { namespace Blobs {
61326135
response.LastModified = DateTime::Parse(
61336136
pRawResponse->GetHeaders().at("Last-Modified"), Azure::DateTime::DateFormat::Rfc1123);
61346137
}
6135-
response.SequenceNumber
6136-
= std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number"));
6138+
if (pRawResponse->GetHeaders().count("x-ms-blob-sequence-number") != 0)
6139+
{
6140+
response.SequenceNumber
6141+
= std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number"));
6142+
}
61376143
return Response<Models::ClearPagesResult>(std::move(response), std::move(pRawResponse));
61386144
}
61396145
Response<Models::UploadPagesFromUriResult> PageBlobClient::UploadPagesFromUri(
@@ -6292,8 +6298,11 @@ namespace Azure { namespace Storage { namespace Blobs {
62926298
= Core::Convert::Base64Decode(pRawResponse->GetHeaders().at("x-ms-content-crc64"));
62936299
response.TransactionalContentHash.Value().Algorithm = HashAlgorithm::Crc64;
62946300
}
6295-
response.SequenceNumber
6296-
= std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number"));
6301+
if (pRawResponse->GetHeaders().count("x-ms-blob-sequence-number") != 0)
6302+
{
6303+
response.SequenceNumber
6304+
= std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number"));
6305+
}
62976306
response.IsServerEncrypted
62986307
= pRawResponse->GetHeaders().at("x-ms-request-server-encrypted") == std::string("true");
62996308
if (pRawResponse->GetHeaders().count("x-ms-encryption-key-sha256") != 0)

sdk/storage/azure-storage-blobs/swagger/README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,26 @@ directive:
515515
});
516516
}
517517
}
518+
- from: swagger-document
519+
where: $
520+
transform: >
521+
const operations = [
522+
"PageBlob_UploadPages",
523+
"PageBlob_ClearPages",
524+
"PageBlob_UploadPagesFromUri",
525+
];
526+
for (const url in $["x-ms-paths"]) {
527+
for (const verb in $["x-ms-paths"][url]) {
528+
if (!operations.includes($["x-ms-paths"][url][verb].operationId)) continue;
529+
const operation = $["x-ms-paths"][url][verb];
530+
531+
const status_codes = Object.keys(operation.responses).filter(s => s !== "default");
532+
status_codes.forEach((status_code, i) => {
533+
operation.responses[status_code].headers["x-ms-blob-sequence-number"]["x-ms-client-default"] = "int64_t()";
534+
operation.responses[status_code].headers["x-ms-blob-sequence-number"]["x-nullable"] = true;
535+
});
536+
}
537+
}
518538
```
519539
520540
### GetBlobServiceProperties

0 commit comments

Comments
 (0)