From 0d1a72a2e64c1d8d43cc390551cda96e791ab412 Mon Sep 17 00:00:00 2001 From: microzchang Date: Thu, 27 Apr 2023 17:19:51 +0800 Subject: [PATCH 1/5] High Throughput Append Blob --- .../inc/azure/storage/blobs/rest_client.hpp | 2 +- .../azure-storage-blobs/src/rest_client.cpp | 140 +++++++++--------- .../azure-storage-blobs/swagger/README.md | 6 +- .../test/ut/append_blob_client_test.cpp | 11 ++ 4 files changed, 87 insertions(+), 72 deletions(-) diff --git a/sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/rest_client.hpp b/sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/rest_client.hpp index 4d28cd840e..de2b65f104 100644 --- a/sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/rest_client.hpp +++ b/sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/rest_client.hpp @@ -31,7 +31,7 @@ namespace Azure { namespace Storage { namespace Blobs { /** * The version used for the operations to Azure storage services. */ - constexpr static const char* ApiVersion = "2021-12-02"; + constexpr static const char* ApiVersion = "2022-11-02"; } // namespace _detail namespace Models { /** diff --git a/sdk/storage/azure-storage-blobs/src/rest_client.cpp b/sdk/storage/azure-storage-blobs/src/rest_client.cpp index 5b638a5905..d89db5d144 100644 --- a/sdk/storage/azure-storage-blobs/src/rest_client.cpp +++ b/sdk/storage/azure-storage-blobs/src/rest_client.cpp @@ -377,7 +377,7 @@ namespace Azure { namespace Storage { namespace Blobs { request.SetHeader("Content-Length", std::to_string(requestBody.Length())); request.GetUrl().AppendQueryParameter("restype", "service"); request.GetUrl().AppendQueryParameter("comp", "properties"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Accepted) @@ -397,7 +397,7 @@ namespace Azure { namespace Storage { namespace Blobs { auto request = Core::Http::Request(Core::Http::HttpMethod::Get, url); request.GetUrl().AppendQueryParameter("restype", "service"); request.GetUrl().AppendQueryParameter("comp", "properties"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); (void)options; auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); @@ -693,7 +693,7 @@ namespace Azure { namespace Storage { namespace Blobs { auto request = Core::Http::Request(Core::Http::HttpMethod::Get, url); request.GetUrl().AppendQueryParameter("restype", "service"); request.GetUrl().AppendQueryParameter("comp", "stats"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); (void)options; auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); @@ -793,7 +793,7 @@ namespace Azure { namespace Storage { namespace Blobs { _internal::UrlEncodeQueryParameter( ListBlobContainersIncludeFlagsToString(options.Include.Value()))); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -1078,7 +1078,7 @@ namespace Azure { namespace Storage { namespace Blobs { request.SetHeader("Content-Length", std::to_string(requestBody.Length())); request.GetUrl().AppendQueryParameter("restype", "service"); request.GetUrl().AppendQueryParameter("comp", "userdelegationkey"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -1193,7 +1193,7 @@ namespace Azure { namespace Storage { namespace Blobs { auto request = Core::Http::Request(Core::Http::HttpMethod::Get, url); request.GetUrl().AppendQueryParameter("restype", "account"); request.GetUrl().AppendQueryParameter("comp", "properties"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); (void)options; auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); @@ -1223,7 +1223,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("Content-Type", options.MultipartContentType); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Accepted) @@ -1244,7 +1244,7 @@ namespace Azure { namespace Storage { namespace Blobs { { auto request = Core::Http::Request(Core::Http::HttpMethod::Get, url); request.GetUrl().AppendQueryParameter("comp", "blobs"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.Where.HasValue() && !options.Where.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -1400,7 +1400,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-blob-public-access", options.Access.ToString()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.DefaultEncryptionScope.HasValue() && !options.DefaultEncryptionScope.Value().empty()) { @@ -1437,7 +1437,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -1515,7 +1515,7 @@ namespace Azure { namespace Storage { namespace Blobs { "If-Unmodified-Since", options.IfUnmodifiedSince.Value().ToString(Azure::DateTime::DateFormat::Rfc1123)); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Accepted) @@ -1549,7 +1549,7 @@ namespace Azure { namespace Storage { namespace Blobs { "If-Modified-Since", options.IfModifiedSince.Value().ToString(Azure::DateTime::DateFormat::Rfc1123)); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -1576,7 +1576,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -1745,7 +1745,7 @@ namespace Azure { namespace Storage { namespace Blobs { "If-Unmodified-Since", options.IfUnmodifiedSince.Value().ToString(Azure::DateTime::DateFormat::Rfc1123)); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -1768,7 +1768,7 @@ namespace Azure { namespace Storage { namespace Blobs { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("restype", "container"); request.GetUrl().AppendQueryParameter("comp", "undelete"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.DeletedContainerName.HasValue() && !options.DeletedContainerName.Value().empty()) { request.SetHeader("x-ms-deleted-container-name", options.DeletedContainerName.Value()); @@ -1798,7 +1798,7 @@ namespace Azure { namespace Storage { namespace Blobs { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("restype", "container"); request.GetUrl().AppendQueryParameter("comp", "rename"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (!options.SourceContainerName.empty()) { request.SetHeader("x-ms-source-container-name", options.SourceContainerName); @@ -1832,7 +1832,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("Content-Type", options.MultipartContentType); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Accepted) @@ -1854,7 +1854,7 @@ namespace Azure { namespace Storage { namespace Blobs { auto request = Core::Http::Request(Core::Http::HttpMethod::Get, url); request.GetUrl().AppendQueryParameter("restype", "container"); request.GetUrl().AppendQueryParameter("comp", "blobs"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.Where.HasValue() && !options.Where.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -2024,7 +2024,7 @@ namespace Azure { namespace Storage { namespace Blobs { "If-Unmodified-Since", options.IfUnmodifiedSince.Value().ToString(Azure::DateTime::DateFormat::Rfc1123)); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Created) @@ -2065,7 +2065,7 @@ namespace Azure { namespace Storage { namespace Blobs { "If-Unmodified-Since", options.IfUnmodifiedSince.Value().ToString(Azure::DateTime::DateFormat::Rfc1123)); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -2105,7 +2105,7 @@ namespace Azure { namespace Storage { namespace Blobs { "If-Unmodified-Since", options.IfUnmodifiedSince.Value().ToString(Azure::DateTime::DateFormat::Rfc1123)); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -2146,7 +2146,7 @@ namespace Azure { namespace Storage { namespace Blobs { "If-Unmodified-Since", options.IfUnmodifiedSince.Value().ToString(Azure::DateTime::DateFormat::Rfc1123)); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Accepted) @@ -2191,7 +2191,7 @@ namespace Azure { namespace Storage { namespace Blobs { "If-Unmodified-Since", options.IfUnmodifiedSince.Value().ToString(Azure::DateTime::DateFormat::Rfc1123)); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -2238,7 +2238,7 @@ namespace Azure { namespace Storage { namespace Blobs { _internal::UrlEncodeQueryParameter( ListBlobsIncludeFlagsToString(options.Include.Value()))); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -2917,7 +2917,7 @@ namespace Azure { namespace Storage { namespace Blobs { _internal::UrlEncodeQueryParameter( ListBlobsIncludeFlagsToString(options.Include.Value()))); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.ShowOnly.HasValue() && !options.ShowOnly.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -3672,7 +3672,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (!(httpStatusCode == Core::Http::HttpStatusCode::Ok @@ -3687,6 +3687,9 @@ namespace Azure { namespace Storage { namespace Blobs { response.Details.LastModified = DateTime::Parse( pRawResponse->GetHeaders().at("Last-Modified"), Azure::DateTime::DateFormat::Rfc1123); } + response.Details.CreatedOn = DateTime::Parse( + pRawResponse->GetHeaders().at("x-ms-creation-time"), + Azure::DateTime::DateFormat::Rfc1123); for (auto i = pRawResponse->GetHeaders().lower_bound("x-ms-meta-"); i != pRawResponse->GetHeaders().end() && i->first.substr(0, 10) == "x-ms-meta-"; ++i) @@ -3838,9 +3841,6 @@ namespace Azure { namespace Storage { namespace Blobs { response.Details.HasLegalHold = pRawResponse->GetHeaders().at("x-ms-legal-hold") == std::string("true"); } - response.Details.CreatedOn = DateTime::Parse( - pRawResponse->GetHeaders().at("x-ms-creation-time"), - Azure::DateTime::DateFormat::Rfc1123); if (httpStatusCode == Core::Http::HttpStatusCode::Ok) { if (pRawResponse->GetHeaders().count("Content-MD5") != 0) @@ -3948,7 +3948,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -4210,7 +4210,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Accepted) @@ -4228,7 +4228,7 @@ namespace Azure { namespace Storage { namespace Blobs { { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("comp", "undelete"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); (void)options; auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); @@ -4247,7 +4247,7 @@ namespace Azure { namespace Storage { namespace Blobs { { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("comp", "expiry"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (!options.ExpiryOptions.ToString().empty()) { request.SetHeader("x-ms-expiry-option", options.ExpiryOptions.ToString()); @@ -4335,7 +4335,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-blob-content-disposition", options.BlobContentDisposition); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -4368,7 +4368,7 @@ namespace Azure { namespace Storage { namespace Blobs { { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("comp", "immutabilityPolicies"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.IfUnmodifiedSince.HasValue()) { request.SetHeader( @@ -4411,7 +4411,7 @@ namespace Azure { namespace Storage { namespace Blobs { { auto request = Core::Http::Request(Core::Http::HttpMethod::Delete, url); request.GetUrl().AppendQueryParameter("comp", "immutabilityPolicies"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); (void)options; auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); @@ -4431,7 +4431,7 @@ namespace Azure { namespace Storage { namespace Blobs { { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("comp", "legalhold"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); request.SetHeader("x-ms-legal-hold", options.LegalHold ? "true" : "false"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); @@ -4503,7 +4503,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -4578,7 +4578,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Created) @@ -4636,7 +4636,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -4693,7 +4693,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -4755,7 +4755,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -4813,7 +4813,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Accepted) @@ -4893,7 +4893,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Created) @@ -5000,7 +5000,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.BlobTagsString.HasValue() && !options.BlobTagsString.Value().empty()) { request.SetHeader("x-ms-tags", options.BlobTagsString.Value()); @@ -5119,7 +5119,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.SourceContentMD5.HasValue() && !Core::Convert::Base64Encode(options.SourceContentMD5.Value()).empty()) { @@ -5229,7 +5229,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::NoContent) @@ -5267,7 +5267,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-rehydrate-priority", options.RehydratePriority.Value().ToString()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -5569,7 +5569,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.EncryptionScope.HasValue() && !options.EncryptionScope.Value().empty()) { request.SetHeader("x-ms-encryption-scope", options.EncryptionScope.Value()); @@ -5618,7 +5618,7 @@ namespace Azure { namespace Storage { namespace Blobs { { auto request = Core::Http::Request(Core::Http::HttpMethod::Get, url); request.GetUrl().AppendQueryParameter("comp", "tags"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.Snapshot.HasValue() && !options.Snapshot.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -5745,7 +5745,7 @@ namespace Azure { namespace Storage { namespace Blobs { request.SetHeader("Content-Type", "application/xml; charset=UTF-8"); request.SetHeader("Content-Length", std::to_string(requestBody.Length())); request.GetUrl().AppendQueryParameter("comp", "tags"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.VersionId.HasValue() && !options.VersionId.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -5876,7 +5876,7 @@ namespace Azure { namespace Storage { namespace Blobs { request.SetHeader( "x-ms-blob-sequence-number", std::to_string(options.BlobSequenceNumber.Value())); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.BlobTagsString.HasValue() && !options.BlobTagsString.Value().empty()) { request.SetHeader("x-ms-tags", options.BlobTagsString.Value()); @@ -6022,7 +6022,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Created) @@ -6148,7 +6148,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Created) @@ -6291,7 +6291,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-source-if-none-match", options.SourceIfNoneMatch.ToString()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.CopySourceAuthorization.HasValue() && !options.CopySourceAuthorization.Value().empty()) { @@ -6392,7 +6392,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.Marker.HasValue() && !options.Marker.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -6570,7 +6570,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.Marker.HasValue() && !options.Marker.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -6750,7 +6750,7 @@ namespace Azure { namespace Storage { namespace Blobs { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } request.SetHeader("x-ms-blob-content-length", std::to_string(options.BlobContentLength)); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -6816,7 +6816,7 @@ namespace Azure { namespace Storage { namespace Blobs { request.SetHeader( "x-ms-blob-sequence-number", std::to_string(options.BlobSequenceNumber.Value())); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -6874,7 +6874,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-copy-source", options.CopySource); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Accepted) @@ -6985,7 +6985,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.BlobTagsString.HasValue() && !options.BlobTagsString.Value().empty()) { request.SetHeader("x-ms-tags", options.BlobTagsString.Value()); @@ -7113,7 +7113,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Created) @@ -7267,7 +7267,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-source-if-none-match", options.SourceIfNoneMatch.ToString()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.CopySourceAuthorization.HasValue() && !options.CopySourceAuthorization.Value().empty()) { @@ -7323,7 +7323,7 @@ namespace Azure { namespace Storage { namespace Blobs { { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("comp", "seal"); - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -7462,7 +7462,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.BlobTagsString.HasValue() && !options.BlobTagsString.Value().empty()) { request.SetHeader("x-ms-tags", options.BlobTagsString.Value()); @@ -7645,7 +7645,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-source-if-tags", options.SourceIfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.SourceContentMD5.HasValue() && !Core::Convert::Base64Encode(options.SourceContentMD5.Value()).empty()) { @@ -7777,7 +7777,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-encryption-scope", options.EncryptionScope.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Created) @@ -7891,7 +7891,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-source-if-none-match", options.SourceIfNoneMatch.ToString()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.CopySourceAuthorization.HasValue() && !options.CopySourceAuthorization.Value().empty()) { @@ -8058,7 +8058,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); if (options.BlobTagsString.HasValue() && !options.BlobTagsString.Value().empty()) { request.SetHeader("x-ms-tags", options.BlobTagsString.Value()); @@ -8147,7 +8147,7 @@ namespace Azure { namespace Storage { namespace Blobs { { request.SetHeader("x-ms-if-tags", options.IfTags.Value()); } - request.SetHeader("x-ms-version", "2021-12-02"); + request.SetHeader("x-ms-version", "2022-11-02"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) diff --git a/sdk/storage/azure-storage-blobs/swagger/README.md b/sdk/storage/azure-storage-blobs/swagger/README.md index 5548a63c98..47ff6bec20 100644 --- a/sdk/storage/azure-storage-blobs/swagger/README.md +++ b/sdk/storage/azure-storage-blobs/swagger/README.md @@ -102,9 +102,13 @@ directive: "name": "ApiVersion", "modelAsString": false }, - "enum": ["2021-12-02"], + "enum": ["2022-11-02"], "description": "The version used for the operations to Azure storage services." }; + - from: swagger-document + where: $.parameters + transform: > + $.ApiVersionParameter.enum[0] = "2022-11-02"; ``` ### Rename Operations diff --git a/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp b/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp index eed379673a..0195c7dbc6 100644 --- a/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp +++ b/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp @@ -337,5 +337,16 @@ namespace Azure { namespace Storage { namespace Test { EXPECT_NO_THROW( appendBlobClient2.AppendBlockFromUri(appendBlobClient.GetUrl() + GetSas(), options2)); } + + TEST_F(AppendBlobClientTest, HighThroughputAppendBlob) + { + auto appendBlobClient = m_blobContainerClient->GetAppendBlobClient(RandomString()); + appendBlobClient.Create(); + auto blockContent = RandomBuffer(static_cast(5_MB)); + auto blockStream = Azure::Core::IO::MemoryBodyStream(blockContent.data(), blockContent.size()); + appendBlobClient.AppendBlock(blockStream); + + EXPECT_EQ(ReadBodyStream(appendBlobClient.Download().Value.BodyStream), blockContent); + } }}} // namespace Azure::Storage::Test From a385882a454ce8487e3d7dd083a6b7395b7ed41f Mon Sep 17 00:00:00 2001 From: microzchang Date: Thu, 27 Apr 2023 17:21:18 +0800 Subject: [PATCH 2/5] disable test --- .../azure-storage-blobs/test/ut/append_blob_client_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp b/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp index 0195c7dbc6..ef1d3fa607 100644 --- a/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp +++ b/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp @@ -338,7 +338,7 @@ namespace Azure { namespace Storage { namespace Test { appendBlobClient2.AppendBlockFromUri(appendBlobClient.GetUrl() + GetSas(), options2)); } - TEST_F(AppendBlobClientTest, HighThroughputAppendBlob) + TEST_F(AppendBlobClientTest, DISABLED_HighThroughputAppendBlob) { auto appendBlobClient = m_blobContainerClient->GetAppendBlobClient(RandomString()); appendBlobClient.Create(); From 1d13748cee4adac3997e5d93ce4a111cbe76c888 Mon Sep 17 00:00:00 2001 From: microzchang Date: Thu, 27 Apr 2023 20:51:23 +0800 Subject: [PATCH 3/5] update test record for blobservicetest.setProperties --- sdk/storage/assets.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/storage/assets.json b/sdk/storage/assets.json index 9f3b375e23..34a15fe51f 100644 --- a/sdk/storage/assets.json +++ b/sdk/storage/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "cpp", "TagPrefix": "cpp/storage", - "Tag": "cpp/storage_497b3668b6" + "Tag": "cpp/storage_8f2bd0dbe5" } From ff21d57a90f989b0de187dd45234fbe6a3c5ae80 Mon Sep 17 00:00:00 2001 From: microzchang Date: Thu, 27 Apr 2023 23:34:49 +0800 Subject: [PATCH 4/5] fix clang format --- .../azure-storage-blobs/test/ut/append_blob_client_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp b/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp index ef1d3fa607..198f03173b 100644 --- a/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp +++ b/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp @@ -337,7 +337,7 @@ namespace Azure { namespace Storage { namespace Test { EXPECT_NO_THROW( appendBlobClient2.AppendBlockFromUri(appendBlobClient.GetUrl() + GetSas(), options2)); } - + TEST_F(AppendBlobClientTest, DISABLED_HighThroughputAppendBlob) { auto appendBlobClient = m_blobContainerClient->GetAppendBlobClient(RandomString()); From d81dc76ddc1ee95646f50126d889beff4f6bb022 Mon Sep 17 00:00:00 2001 From: microzchang Date: Fri, 28 Apr 2023 20:38:25 +0800 Subject: [PATCH 5/5] update test to both LIVEONLY and DISABLED change HandleItem.accessRights to AccessRights --- .../azure-storage-blobs/test/ut/append_blob_client_test.cpp | 2 +- .../inc/azure/storage/files/shares/share_responses.hpp | 2 +- .../azure-storage-files-shares/src/share_directory_client.cpp | 2 +- .../azure-storage-files-shares/src/share_file_client.cpp | 2 +- .../test/ut/share_directory_client_test.cpp | 4 ++-- .../test/ut/share_file_client_test.cpp | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp b/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp index 198f03173b..37f8f21afe 100644 --- a/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp +++ b/sdk/storage/azure-storage-blobs/test/ut/append_blob_client_test.cpp @@ -338,7 +338,7 @@ namespace Azure { namespace Storage { namespace Test { appendBlobClient2.AppendBlockFromUri(appendBlobClient.GetUrl() + GetSas(), options2)); } - TEST_F(AppendBlobClientTest, DISABLED_HighThroughputAppendBlob) + TEST_F(AppendBlobClientTest, DISABLED_LIVEONLY_HighThroughputAppendBlob) { auto appendBlobClient = m_blobContainerClient->GetAppendBlobClient(RandomString()); appendBlobClient.Create(); diff --git a/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/share_responses.hpp b/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/share_responses.hpp index 2275b53a91..6af2e1069c 100644 --- a/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/share_responses.hpp +++ b/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/share_responses.hpp @@ -291,7 +291,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { /** * Access rights of the handle. */ - Azure::Nullable accessRights; + Azure::Nullable AccessRights; }; } // namespace Models diff --git a/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp index ac21581ce6..7c5725f7ac 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp @@ -609,7 +609,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { accessRights |= Models::ShareFileHandleAccessRights::Delete; } } - directoryHandle.accessRights = std::move(accessRights); + directoryHandle.AccessRights = std::move(accessRights); } pagedResponse.DirectoryHandles.push_back(std::move(directoryHandle)); diff --git a/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp index d97632ab6c..f0422cecd9 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp @@ -715,7 +715,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { accessRights |= Models::ShareFileHandleAccessRights::Delete; } } - fileHandle.accessRights = std::move(accessRights); + fileHandle.AccessRights = std::move(accessRights); } pagedResponse.FileHandles.push_back(std::move(fileHandle)); diff --git a/sdk/storage/azure-storage-files-shares/test/ut/share_directory_client_test.cpp b/sdk/storage/azure-storage-files-shares/test/ut/share_directory_client_test.cpp index fee007e531..0861d17bc5 100644 --- a/sdk/storage/azure-storage-files-shares/test/ut/share_directory_client_test.cpp +++ b/sdk/storage/azure-storage-files-shares/test/ut/share_directory_client_test.cpp @@ -1090,7 +1090,7 @@ namespace Azure { namespace Storage { namespace Test { | Files::Shares::Models::ShareFileHandleAccessRights::Write | Files::Shares::Models::ShareFileHandleAccessRights::Delete; EXPECT_EQ(directoryHandles.size(), 1L); - EXPECT_TRUE(directoryHandles[0].accessRights.HasValue()); - EXPECT_EQ(allAccessRights, directoryHandles[0].accessRights.Value()); + EXPECT_TRUE(directoryHandles[0].AccessRights.HasValue()); + EXPECT_EQ(allAccessRights, directoryHandles[0].AccessRights.Value()); } }}} // namespace Azure::Storage::Test diff --git a/sdk/storage/azure-storage-files-shares/test/ut/share_file_client_test.cpp b/sdk/storage/azure-storage-files-shares/test/ut/share_file_client_test.cpp index 5c5bf20521..b4902b4559 100644 --- a/sdk/storage/azure-storage-files-shares/test/ut/share_file_client_test.cpp +++ b/sdk/storage/azure-storage-files-shares/test/ut/share_file_client_test.cpp @@ -1429,7 +1429,7 @@ namespace Azure { namespace Storage { namespace Test { | Files::Shares::Models::ShareFileHandleAccessRights::Write | Files::Shares::Models::ShareFileHandleAccessRights::Delete; EXPECT_EQ(fileHandles.size(), 1L); - EXPECT_TRUE(fileHandles[0].accessRights.HasValue()); - EXPECT_EQ(allAccessRights, fileHandles[0].accessRights.Value()); + EXPECT_TRUE(fileHandles[0].AccessRights.HasValue()); + EXPECT_EQ(allAccessRights, fileHandles[0].AccessRights.Value()); } }}} // namespace Azure::Storage::Test