diff --git a/sdk/storage/azure-storage-blobs/src/rest_client.cpp b/sdk/storage/azure-storage-blobs/src/rest_client.cpp index 1678ac9b72..22277f0397 100644 --- a/sdk/storage/azure-storage-blobs/src/rest_client.cpp +++ b/sdk/storage/azure-storage-blobs/src/rest_client.cpp @@ -6023,8 +6023,11 @@ namespace Azure { namespace Storage { namespace Blobs { = Core::Convert::Base64Decode(pRawResponse->GetHeaders().at("x-ms-content-crc64")); response.TransactionalContentHash.Value().Algorithm = HashAlgorithm::Crc64; } - response.SequenceNumber - = std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number")); + if (pRawResponse->GetHeaders().count("x-ms-blob-sequence-number") != 0) + { + response.SequenceNumber + = std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number")); + } response.IsServerEncrypted = pRawResponse->GetHeaders().at("x-ms-request-server-encrypted") == std::string("true"); if (pRawResponse->GetHeaders().count("x-ms-encryption-key-sha256") != 0) @@ -6132,8 +6135,11 @@ namespace Azure { namespace Storage { namespace Blobs { response.LastModified = DateTime::Parse( pRawResponse->GetHeaders().at("Last-Modified"), Azure::DateTime::DateFormat::Rfc1123); } - response.SequenceNumber - = std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number")); + if (pRawResponse->GetHeaders().count("x-ms-blob-sequence-number") != 0) + { + response.SequenceNumber + = std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number")); + } return Response(std::move(response), std::move(pRawResponse)); } Response PageBlobClient::UploadPagesFromUri( @@ -6292,8 +6298,11 @@ namespace Azure { namespace Storage { namespace Blobs { = Core::Convert::Base64Decode(pRawResponse->GetHeaders().at("x-ms-content-crc64")); response.TransactionalContentHash.Value().Algorithm = HashAlgorithm::Crc64; } - response.SequenceNumber - = std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number")); + if (pRawResponse->GetHeaders().count("x-ms-blob-sequence-number") != 0) + { + response.SequenceNumber + = std::stoll(pRawResponse->GetHeaders().at("x-ms-blob-sequence-number")); + } response.IsServerEncrypted = pRawResponse->GetHeaders().at("x-ms-request-server-encrypted") == std::string("true"); if (pRawResponse->GetHeaders().count("x-ms-encryption-key-sha256") != 0) diff --git a/sdk/storage/azure-storage-blobs/swagger/README.md b/sdk/storage/azure-storage-blobs/swagger/README.md index 2b34011ca2..66b8270fd4 100644 --- a/sdk/storage/azure-storage-blobs/swagger/README.md +++ b/sdk/storage/azure-storage-blobs/swagger/README.md @@ -515,6 +515,26 @@ directive: }); } } + - from: swagger-document + where: $ + transform: > + const operations = [ + "PageBlob_UploadPages", + "PageBlob_ClearPages", + "PageBlob_UploadPagesFromUri", + ]; + for (const url in $["x-ms-paths"]) { + for (const verb in $["x-ms-paths"][url]) { + if (!operations.includes($["x-ms-paths"][url][verb].operationId)) continue; + const operation = $["x-ms-paths"][url][verb]; + + const status_codes = Object.keys(operation.responses).filter(s => s !== "default"); + status_codes.forEach((status_code, i) => { + operation.responses[status_code].headers["x-ms-blob-sequence-number"]["x-ms-client-default"] = "int64_t()"; + operation.responses[status_code].headers["x-ms-blob-sequence-number"]["x-nullable"] = true; + }); + } + } ``` ### GetBlobServiceProperties