diff --git a/sdk/storage/CMakeLists.txt b/sdk/storage/CMakeLists.txt index 56e9bc008..f6be37855 100644 --- a/sdk/storage/CMakeLists.txt +++ b/sdk/storage/CMakeLists.txt @@ -92,6 +92,7 @@ set (AZURE_STORAGE_BLOB_HEADER inc/blobs/page_blob_client.hpp inc/blobs/append_blob_client.hpp inc/blobs/blob_options.hpp + inc/blobs/blob_responses.hpp inc/blobs/protocol/blob_rest_client.hpp ) diff --git a/sdk/storage/inc/blobs/blob_client.hpp b/sdk/storage/inc/blobs/blob_client.hpp index 41d4a7b75..f47054f04 100644 --- a/sdk/storage/inc/blobs/blob_client.hpp +++ b/sdk/storage/inc/blobs/blob_client.hpp @@ -4,6 +4,7 @@ #pragma once #include "blob_options.hpp" +#include "blob_responses.hpp" #include "common/storage_credential.hpp" #include "common/storage_uri_builder.hpp" #include "credentials/credentials.hpp" @@ -20,18 +21,6 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { namespace Azure { namespace Storage { namespace Blobs { - struct BlobDownloadInfo - { - std::string ETag; - std::string LastModified; - int64_t ContentLength = 0; - BlobHttpHeaders HttpHeaders; - std::map Metadata; - Blobs::BlobType BlobType = Blobs::BlobType::Unknown; - Azure::Core::Nullable ServerEncrypted; - Azure::Core::Nullable EncryptionKeySHA256; - }; - class BlockBlobClient; class AppendBlobClient; class PageBlobClient; @@ -164,7 +153,7 @@ namespace Azure { namespace Storage { namespace Blobs { * * @param httpHeaders The standard HTTP header system properties to set. * @param options Optional parameters to execute this function. - * @return A SetBlobHttpHeadersResponse describing the updated blob. + * @return A BlobInfo describing the updated blob. */ Azure::Core::Response SetHttpHeaders( BlobHttpHeaders httpHeaders, @@ -177,7 +166,7 @@ namespace Azure { namespace Storage { namespace Blobs { * @param metadata Custom metadata to set for this blob. * @param * options Optional parameters to execute this function. - * @return A SetBlobMetadataResponse describing the updated blob. + * @return A BlobInfo describing the updated blob. */ Azure::Core::Response SetMetadata( std::map metadata, @@ -190,9 +179,9 @@ namespace Azure { namespace Storage { namespace Blobs { * @param Tier Indicates the tier to be set on the blob. * @param options Optional * parameters to execute this function. - * @return A SetAccessTierResponse on successfully setting the tier. + * @return A SetBlobAccessTierInfo on successfully setting the tier. */ - Azure::Core::Response SetAccessTier( + Azure::Core::Response SetAccessTier( AccessTier Tier, const SetAccessTierOptions& options = SetAccessTierOptions()) const; @@ -218,9 +207,9 @@ namespace Azure { namespace Storage { namespace Blobs { * * @param copyId ID of the copy operation to abort. * @param options Optional parameters to execute this function. - * @return A AbortCopyBlobResponse on successfully aborting. + * @return A AbortCopyBlobInfo on successfully aborting. */ - Azure::Core::Response AbortCopyFromUri( + Azure::Core::Response AbortCopyFromUri( const std::string& copyId, const AbortCopyFromUriOptions& options = AbortCopyFromUriOptions()) const; @@ -243,8 +232,7 @@ namespace Azure { namespace Storage { namespace Blobs { * @param bufferSize Size of the memory buffer. Size must be larger or equal to size of the blob * or blob range. * @param options Optional parameters to execute this function. - * @return A - * BlobDownloadInfo describing the downloaded blob. + * @return A BlobDownloadInfo describing the downloaded blob. */ Azure::Core::Response DownloadToBuffer( uint8_t* buffer, @@ -257,8 +245,7 @@ namespace Azure { namespace Storage { namespace Blobs { * * @param file A file path to write the downloaded content to. * @param options Optional parameters to execute this function. - * @return A - * BlobDownloadInfo describing the downloaded blob. + * @return A BlobDownloadInfo describing the downloaded blob. */ Azure::Core::Response DownloadToFile( const std::string& file, @@ -281,9 +268,9 @@ namespace Azure { namespace Storage { namespace Blobs { * snapshots. You can delete both at the same time using DeleteBlobOptions.DeleteSnapshots. * * @param options Optional parameters to execute this function. - * @return A DeleteBlobResponse on successfully deleting. + * @return A DeleteBlobInfo on successfully deleting. */ - Azure::Core::Response Delete( + Azure::Core::Response Delete( const DeleteBlobOptions& options = DeleteBlobOptions()) const; /** @@ -292,9 +279,9 @@ namespace Azure { namespace Storage { namespace Blobs { * * @param options Optional parameters to execute this * function. - * @return A UndeleteBlobResponse on successfully deleting. + * @return A UndeleteBlobInfo on successfully deleting. */ - Azure::Core::Response Undelete( + Azure::Core::Response Undelete( const UndeleteBlobOptions& options = UndeleteBlobOptions()) const; protected: diff --git a/sdk/storage/inc/blobs/blob_container_client.hpp b/sdk/storage/inc/blobs/blob_container_client.hpp index 9d955a261..94cad2ddd 100644 --- a/sdk/storage/inc/blobs/blob_container_client.hpp +++ b/sdk/storage/inc/blobs/blob_container_client.hpp @@ -144,9 +144,9 @@ namespace Azure { namespace Storage { namespace Blobs { * * @param * options Optional parameters to execute this function. - * @return A DeleteContainerResponse if successful. + * @return A DeleteContainerInfo if successful. */ - Azure::Core::Response Delete( + Azure::Core::Response Delete( const DeleteBlobContainerOptions& options = DeleteBlobContainerOptions()) const; /** @@ -167,7 +167,7 @@ namespace Azure { namespace Storage { namespace Blobs { * @param metadata Custom metadata to set for this container. * @param options * Optional parameters to execute this function. - * @return A SetContainerMetadataResponse if successful. + * @return A BlobContainerInfo if successful. */ Azure::Core::Response SetMetadata( std::map metadata, diff --git a/sdk/storage/inc/blobs/blob_responses.hpp b/sdk/storage/inc/blobs/blob_responses.hpp new file mode 100644 index 000000000..b1930ce5a --- /dev/null +++ b/sdk/storage/inc/blobs/blob_responses.hpp @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// SPDX-License-Identifier: MIT + +#pragma once + +#include "protocol/blob_rest_client.hpp" + +#include +#include +#include + +namespace Azure { namespace Storage { namespace Blobs { + + struct BlobDownloadInfo + { + std::string ETag; + std::string LastModified; + int64_t ContentLength = 0; + BlobHttpHeaders HttpHeaders; + std::map Metadata; + Blobs::BlobType BlobType = Blobs::BlobType::Unknown; + Azure::Core::Nullable ServerEncrypted; + Azure::Core::Nullable EncryptionKeySHA256; + }; + + struct PageRange + { + int64_t Offset; + int64_t Length; + }; + + struct PageRangesInfo + { + std::string ETag; + std::string LastModified; + int64_t BlobContentLength = 0; + std::vector PageRanges; + std::vector ClearRanges; + }; + +}}} // namespace Azure::Storage::Blobs diff --git a/sdk/storage/inc/blobs/page_blob_client.hpp b/sdk/storage/inc/blobs/page_blob_client.hpp index 06c39d687..eed5125d7 100644 --- a/sdk/storage/inc/blobs/page_blob_client.hpp +++ b/sdk/storage/inc/blobs/page_blob_client.hpp @@ -4,6 +4,7 @@ #pragma once #include "blob_options.hpp" +#include "blob_responses.hpp" #include "blobs/blob_client.hpp" #include "common/storage_credential.hpp" #include "credentials/credentials.hpp" @@ -13,25 +14,6 @@ namespace Azure { namespace Storage { namespace Blobs { - struct PageRange - { - int64_t Offset; - int64_t Length; - }; - - struct PageRangesInfo - { - std::string RequestId; - std::string Date; - std::string Version; - Azure::Core::Nullable ClientRequestId; - std::string ETag; - std::string LastModified; - int64_t BlobContentLength = 0; - std::vector PageRanges; - std::vector ClearRanges; - }; - /** * The PageBlobClient allows you to manipulate Azure Storage page blobs. * diff --git a/sdk/storage/inc/blobs/protocol/blob_rest_client.hpp b/sdk/storage/inc/blobs/protocol/blob_rest_client.hpp index d400ca376..ccd5730a4 100644 --- a/sdk/storage/inc/blobs/protocol/blob_rest_client.hpp +++ b/sdk/storage/inc/blobs/protocol/blob_rest_client.hpp @@ -28,9 +28,9 @@ namespace Azure { namespace Storage { namespace Blobs { Azure::Core::Http::BodyStream, std::function>; - struct AbortCopyBlobResponse + struct AbortCopyBlobInfo { - }; // struct AbortCopyBlobResponse + }; // struct AbortCopyBlobInfo enum class AccessTier { @@ -539,13 +539,13 @@ namespace Azure { namespace Storage { namespace Blobs { throw std::runtime_error("cannot convert " + copy_status + " to CopyStatus"); } - struct DeleteBlobResponse + struct DeleteBlobInfo { - }; // struct DeleteBlobResponse + }; // struct DeleteBlobInfo - struct DeleteContainerResponse + struct DeleteContainerInfo { - }; // struct DeleteContainerResponse + }; // struct DeleteContainerInfo enum class DeleteSnapshotsOption { @@ -823,13 +823,13 @@ namespace Azure { namespace Storage { namespace Blobs { throw std::runtime_error("cannot convert " + rehydrate_priority + " to RehydratePriority"); } - struct SetAccessTierResponse + struct SetBlobAccessTierInfo { - }; // struct SetAccessTierResponse + }; // struct SetBlobAccessTierInfo - struct UndeleteBlobResponse + struct UndeleteBlobInfo { - }; // struct UndeleteBlobResponse + }; // struct UndeleteBlobInfo struct UserDelegationKey { @@ -1704,13 +1704,13 @@ namespace Azure { namespace Storage { namespace Blobs { return request; } - static Azure::Core::Response DeleteParseResponse( + static Azure::Core::Response DeleteParseResponse( Azure::Core::Context context, std::unique_ptr pHttpResponse) { unused(context); Azure::Core::Http::RawResponse& httpResponse = *pHttpResponse; - DeleteContainerResponse response; + DeleteContainerInfo response; auto http_status_code = static_cast::type>( httpResponse.GetStatusCode()); @@ -1718,11 +1718,11 @@ namespace Azure { namespace Storage { namespace Blobs { { throw StorageError::CreateFromResponse(std::move(pHttpResponse)); } - return Azure::Core::Response( + return Azure::Core::Response( std::move(response), std::move(pHttpResponse)); } - static Azure::Core::Response Delete( + static Azure::Core::Response Delete( Azure::Core::Context context, Azure::Core::Http::HttpPipeline& pipeline, const std::string& url, @@ -2969,13 +2969,13 @@ namespace Azure { namespace Storage { namespace Blobs { return request; } - static Azure::Core::Response DeleteParseResponse( + static Azure::Core::Response DeleteParseResponse( Azure::Core::Context context, std::unique_ptr pHttpResponse) { unused(context); Azure::Core::Http::RawResponse& httpResponse = *pHttpResponse; - DeleteBlobResponse response; + DeleteBlobInfo response; auto http_status_code = static_cast::type>( httpResponse.GetStatusCode()); @@ -2983,11 +2983,10 @@ namespace Azure { namespace Storage { namespace Blobs { { throw StorageError::CreateFromResponse(std::move(pHttpResponse)); } - return Azure::Core::Response( - std::move(response), std::move(pHttpResponse)); + return Azure::Core::Response(std::move(response), std::move(pHttpResponse)); } - static Azure::Core::Response Delete( + static Azure::Core::Response Delete( Azure::Core::Context context, Azure::Core::Http::HttpPipeline& pipeline, const std::string& url, @@ -3022,13 +3021,13 @@ namespace Azure { namespace Storage { namespace Blobs { return request; } - static Azure::Core::Response UndeleteParseResponse( + static Azure::Core::Response UndeleteParseResponse( Azure::Core::Context context, std::unique_ptr pHttpResponse) { unused(context); Azure::Core::Http::RawResponse& httpResponse = *pHttpResponse; - UndeleteBlobResponse response; + UndeleteBlobInfo response; auto http_status_code = static_cast::type>( httpResponse.GetStatusCode()); @@ -3036,11 +3035,11 @@ namespace Azure { namespace Storage { namespace Blobs { { throw StorageError::CreateFromResponse(std::move(pHttpResponse)); } - return Azure::Core::Response( + return Azure::Core::Response( std::move(response), std::move(pHttpResponse)); } - static Azure::Core::Response Undelete( + static Azure::Core::Response Undelete( Azure::Core::Context context, Azure::Core::Http::HttpPipeline& pipeline, const std::string& url, @@ -3534,13 +3533,13 @@ namespace Azure { namespace Storage { namespace Blobs { return request; } - static Azure::Core::Response SetAccessTierParseResponse( + static Azure::Core::Response SetAccessTierParseResponse( Azure::Core::Context context, std::unique_ptr pHttpResponse) { unused(context); Azure::Core::Http::RawResponse& httpResponse = *pHttpResponse; - SetAccessTierResponse response; + SetBlobAccessTierInfo response; auto http_status_code = static_cast::type>( httpResponse.GetStatusCode()); @@ -3548,11 +3547,11 @@ namespace Azure { namespace Storage { namespace Blobs { { throw StorageError::CreateFromResponse(std::move(pHttpResponse)); } - return Azure::Core::Response( + return Azure::Core::Response( std::move(response), std::move(pHttpResponse)); } - static Azure::Core::Response SetAccessTier( + static Azure::Core::Response SetAccessTier( Azure::Core::Context context, Azure::Core::Http::HttpPipeline& pipeline, const std::string& url, @@ -3732,13 +3731,13 @@ namespace Azure { namespace Storage { namespace Blobs { return request; } - static Azure::Core::Response AbortCopyFromUriParseResponse( + static Azure::Core::Response AbortCopyFromUriParseResponse( Azure::Core::Context context, std::unique_ptr pHttpResponse) { unused(context); Azure::Core::Http::RawResponse& httpResponse = *pHttpResponse; - AbortCopyBlobResponse response; + AbortCopyBlobInfo response; auto http_status_code = static_cast::type>( httpResponse.GetStatusCode()); @@ -3746,11 +3745,11 @@ namespace Azure { namespace Storage { namespace Blobs { { throw StorageError::CreateFromResponse(std::move(pHttpResponse)); } - return Azure::Core::Response( + return Azure::Core::Response( std::move(response), std::move(pHttpResponse)); } - static Azure::Core::Response AbortCopyFromUri( + static Azure::Core::Response AbortCopyFromUri( Azure::Core::Context context, Azure::Core::Http::HttpPipeline& pipeline, const std::string& url, diff --git a/sdk/storage/src/blobs/blob_client.cpp b/sdk/storage/src/blobs/blob_client.cpp index 0e5352994..5686375c7 100644 --- a/sdk/storage/src/blobs/blob_client.cpp +++ b/sdk/storage/src/blobs/blob_client.cpp @@ -461,7 +461,7 @@ namespace Azure { namespace Storage { namespace Blobs { options.Context, *m_pipeline, m_blobUrl.ToString(), protocolLayerOptions); } - Azure::Core::Response BlobClient::SetAccessTier( + Azure::Core::Response BlobClient::SetAccessTier( AccessTier Tier, const SetAccessTierOptions& options) const { @@ -495,7 +495,7 @@ namespace Azure { namespace Storage { namespace Blobs { options.Context, *m_pipeline, m_blobUrl.ToString(), protocolLayerOptions); } - Azure::Core::Response BlobClient::AbortCopyFromUri( + Azure::Core::Response BlobClient::AbortCopyFromUri( const std::string& copyId, const AbortCopyFromUriOptions& options) const { @@ -520,8 +520,7 @@ namespace Azure { namespace Storage { namespace Blobs { options.Context, *m_pipeline, m_blobUrl.ToString(), protocolLayerOptions); } - Azure::Core::Response BlobClient::Delete( - const DeleteBlobOptions& options) const + Azure::Core::Response BlobClient::Delete(const DeleteBlobOptions& options) const { BlobRestClient::Blob::DeleteOptions protocolLayerOptions; protocolLayerOptions.DeleteSnapshots = options.DeleteSnapshots; @@ -534,7 +533,7 @@ namespace Azure { namespace Storage { namespace Blobs { options.Context, *m_pipeline, m_blobUrl.ToString(), protocolLayerOptions); } - Azure::Core::Response BlobClient::Undelete( + Azure::Core::Response BlobClient::Undelete( const UndeleteBlobOptions& options) const { BlobRestClient::Blob::UndeleteOptions protocolLayerOptions; diff --git a/sdk/storage/src/blobs/blob_container_client.cpp b/sdk/storage/src/blobs/blob_container_client.cpp index 8988a3924..99091f28e 100644 --- a/sdk/storage/src/blobs/blob_container_client.cpp +++ b/sdk/storage/src/blobs/blob_container_client.cpp @@ -146,7 +146,7 @@ namespace Azure { namespace Storage { namespace Blobs { options.Context, *m_pipeline, m_containerUrl.ToString(), protocolLayerOptions); } - Azure::Core::Response BlobContainerClient::Delete( + Azure::Core::Response BlobContainerClient::Delete( const DeleteBlobContainerOptions& options) const { BlobRestClient::Container::DeleteOptions protocolLayerOptions;