azure-storage-blobs
page_blob_client.hpp
1 // Copyright (c) Microsoft Corporation. All rights reserved.
2 // SPDX-License-Identifier: MIT
3 
4 #pragma once
5 
6 #include <cstdint>
7 #include <memory>
8 #include <string>
9 
10 #include "azure/storage/blobs/blob_client.hpp"
11 
12 namespace Azure { namespace Storage { namespace Blobs {
13 
23  class PageBlobClient final : public BlobClient {
24  public:
37  const std::string& connectionString,
38  const std::string& blobContainerName,
39  const std::string& blobName,
40  const BlobClientOptions& options = BlobClientOptions());
41 
53  explicit PageBlobClient(
54  const std::string& blobUrl,
55  std::shared_ptr<StorageSharedKeyCredential> credential,
56  const BlobClientOptions& options = BlobClientOptions());
57 
68  explicit PageBlobClient(
69  const std::string& blobUrl,
70  std::shared_ptr<Core::Credentials::TokenCredential> credential,
71  const BlobClientOptions& options = BlobClientOptions());
72 
83  explicit PageBlobClient(
84  const std::string& blobUrl,
85  const BlobClientOptions& options = BlobClientOptions());
86 
96  PageBlobClient WithSnapshot(const std::string& snapshot) const;
97 
106  PageBlobClient WithVersionId(const std::string& versionId) const;
107 
118  Azure::Response<Models::CreatePageBlobResult> Create(
119  int64_t blobSize,
120  const CreatePageBlobOptions& options = CreatePageBlobOptions(),
121  const Azure::Core::Context& context = Azure::Core::Context()) const;
122 
134  Azure::Response<Models::CreatePageBlobResult> CreateIfNotExists(
135  int64_t blobContentLength,
136  const CreatePageBlobOptions& options = CreatePageBlobOptions(),
137  const Azure::Core::Context& context = Azure::Core::Context()) const;
138 
150  Azure::Response<Models::UploadPagesResult> UploadPages(
151  int64_t offset,
152  Azure::Core::IO::BodyStream& content,
153  const UploadPagesOptions& options = UploadPagesOptions(),
154  const Azure::Core::Context& context = Azure::Core::Context()) const;
155 
172  Azure::Response<Models::UploadPagesFromUriResult> UploadPagesFromUri(
173  int64_t destinationOffset,
174  std::string sourceUri,
175  Azure::Core::Http::HttpRange sourceRange,
177  const Azure::Core::Context& context = Azure::Core::Context()) const;
178 
190  Azure::Response<Models::ClearPagesResult> ClearPages(
191  Azure::Core::Http::HttpRange range,
192  const ClearPagesOptions& options = ClearPagesOptions(),
193  const Azure::Core::Context& context = Azure::Core::Context()) const;
194 
206  Azure::Response<Models::ResizePageBlobResult> Resize(
207  int64_t blobSize,
208  const ResizePageBlobOptions& options = ResizePageBlobOptions(),
209  const Azure::Core::Context& context = Azure::Core::Context()) const;
210 
219  const GetPageRangesOptions& options = GetPageRangesOptions(),
220  const Azure::Core::Context& context = Azure::Core::Context()) const;
221 
235  const std::string& previousSnapshot,
236  const GetPageRangesOptions& options = GetPageRangesOptions(),
237  const Azure::Core::Context& context = Azure::Core::Context()) const;
238 
254  const std::string& previousSnapshotUrl,
255  const GetPageRangesOptions& options = GetPageRangesOptions(),
256  const Azure::Core::Context& context = Azure::Core::Context()) const;
257 
271  const std::string& sourceUri,
273  const Azure::Core::Context& context = Azure::Core::Context()) const;
274 
275  private:
276  explicit PageBlobClient(BlobClient blobClient);
277 
278  friend class BlobClient;
279  };
280 
281 }}} // namespace Azure::Storage::Blobs
Azure::Storage::Blobs::PageBlobClient::GetPageRanges
GetPageRangesPagedResponse GetPageRanges(const GetPageRangesOptions &options=GetPageRangesOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns the list of valid page ranges for a page blob or snapshot of a page blob.
Definition: page_blob_client.cpp:236
Azure::Storage::Blobs::PageBlobClient::ClearPages
Azure::Response< Models::ClearPagesResult > ClearPages(Azure::Core::Http::HttpRange range, const ClearPagesOptions &options=ClearPagesOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Clears one or more pages from the page blob, as specificed by range.
Definition: page_blob_client.cpp:188
Azure::Storage::Blobs::GetPageRangesOptions
Optional parameters for Azure::Storage::Blobs::PageBlobClient::GetPageRanges.
Definition: blob_options.hpp:1016
Azure::Storage::Blobs::ClearPagesOptions
Optional parameters for Azure::Storage::Blobs::PageBlobClient::ClearPages.
Definition: blob_options.hpp:994
Azure::Storage::Blobs::BlobClient
The BlobClient allows you to manipulate Azure Storage blobs.
Definition: blob_client.hpp:34
Azure::Storage::Blobs::PageBlobClient::CreateIfNotExists
Azure::Response< Models::CreatePageBlobResult > CreateIfNotExists(int64_t blobContentLength, const CreatePageBlobOptions &options=CreatePageBlobOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates a new page blob of the specified size. The content keeps unchanged if the blob already exists...
Definition: page_blob_client.cpp:106
Azure::Storage::Blobs::UploadPagesOptions
Optional parameters for Azure::Storage::Blobs::PageBlobClient::UploadPages.
Definition: blob_options.hpp:958
Azure::Storage::Blobs::CreatePageBlobOptions
Optional parameters for Azure::Storage::Blobs::PageBlobClient::Create.
Definition: blob_options.hpp:926
Azure::Storage::Blobs::PageBlobClient::Create
Azure::Response< Models::CreatePageBlobResult > Create(int64_t blobSize, const CreatePageBlobOptions &options=CreatePageBlobOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates a new page blob of the specified size. The content of any existing blob is overwritten with t...
Definition: page_blob_client.cpp:78
Azure::Storage::Blobs::PageBlobClient::GetPageRangesDiff
GetPageRangesDiffPagedResponse GetPageRangesDiff(const std::string &previousSnapshot, const GetPageRangesOptions &options=GetPageRangesOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns the list of page ranges that differ between a previous snapshot and this page blob....
Definition: page_blob_client.cpp:266
Azure::Storage::Blobs::UploadPagesFromUriOptions
Optional parameters for Azure::Storage::Blobs::PageBlobClient::UploadPagesFromUri.
Definition: blob_options.hpp:976
Azure::Storage::Blobs::StartBlobCopyIncrementalOptions
Optional parameters for Azure::Storage::Blobs::PageBlobClient::StartCopyIncremental.
Definition: blob_options.hpp:1033
Azure::Storage::Blobs::PageBlobClient::UploadPages
Azure::Response< Models::UploadPagesResult > UploadPages(int64_t offset, Azure::Core::IO::BodyStream &content, const UploadPagesOptions &options=UploadPagesOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Writes content to a range of pages in a page blob, starting at offset.
Definition: page_blob_client.cpp:131
Azure::Storage::Blobs::PageBlobClient::WithSnapshot
PageBlobClient WithSnapshot(const std::string &snapshot) const
Initializes a new instance of the PageBlobClient class with an identical URL source but the specified...
Definition: page_blob_client.cpp:48
Azure::Storage::Blobs::PageBlobClient
Definition: page_blob_client.hpp:23
Azure::Storage::Blobs::BlobClientOptions
Client options used to initialize all kinds of blob clients.
Definition: blob_options.hpp:135
Azure::Storage::Blobs::PageBlobClient::UploadPagesFromUri
Azure::Response< Models::UploadPagesFromUriResult > UploadPagesFromUri(int64_t destinationOffset, std::string sourceUri, Azure::Core::Http::HttpRange sourceRange, const UploadPagesFromUriOptions &options=UploadPagesFromUriOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Writes a range of pages to a page blob where the contents are read from a uri.
Definition: page_blob_client.cpp:158
Azure::Storage::Blobs::StartBlobCopyOperation
A long-running operation to copy a blob.
Definition: blob_responses.hpp:171
Azure::Storage::Blobs::PageBlobClient::Resize
Azure::Response< Models::ResizePageBlobResult > Resize(int64_t blobSize, const ResizePageBlobOptions &options=ResizePageBlobOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Resizes the page blob to the specified size (which must be a multiple of 512). If the specified value...
Definition: page_blob_client.cpp:212
Azure::Storage::Blobs::GetPageRangesDiffPagedResponse
Response type for Azure::Storage::Blobs::PageBlobClient::GetPageRangesDiff and Azure::Storage::Blobs:...
Definition: blob_responses.hpp:394
Azure::Storage::Blobs::PageBlobClient::StartCopyIncremental
StartBlobCopyOperation StartCopyIncremental(const std::string &sourceUri, const StartBlobCopyIncrementalOptions &options=StartBlobCopyIncrementalOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Starts copying a snapshot of the sourceUri page blob to this page blob. The snapshot is copied such t...
Definition: page_blob_client.cpp:334
Azure::Storage::Blobs::GetPageRangesPagedResponse
Response type for Azure::Storage::Blobs::PageBlobClient::GetPageRanges.
Definition: blob_responses.hpp:357
Azure::Storage::Blobs::PageBlobClient::WithVersionId
PageBlobClient WithVersionId(const std::string &versionId) const
Creates a clone of this instance that references a version ID rather than the base blob.
Definition: page_blob_client.cpp:63
Azure::Storage::Blobs::ResizePageBlobOptions
Optional parameters for Azure::Storage::Blobs::PageBlobClient::Resize.
Definition: blob_options.hpp:1005
Azure::Storage::Blobs::PageBlobClient::CreateFromConnectionString
static PageBlobClient CreateFromConnectionString(const std::string &connectionString, const std::string &blobContainerName, const std::string &blobName, const BlobClientOptions &options=BlobClientOptions())
Initialize a new instance of PageBlobClient.
Definition: page_blob_client.cpp:14
Azure::Storage::Blobs::PageBlobClient::PageBlobClient
PageBlobClient(const std::string &blobUrl, std::shared_ptr< StorageSharedKeyCredential > credential, const BlobClientOptions &options=BlobClientOptions())
Initialize a new instance of PageBlobClient.
Definition: page_blob_client.cpp:25
Azure::Storage::Blobs::PageBlobClient::GetManagedDiskPageRangesDiff
GetPageRangesDiffPagedResponse GetManagedDiskPageRangesDiff(const std::string &previousSnapshotUrl, const GetPageRangesOptions &options=GetPageRangesOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns the list of page ranges that differ between a previous snapshot URL and this page blob....
Definition: page_blob_client.cpp:300