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 "azure/core/credentials/credentials.hpp"
7 #include "azure/storage/blobs/blob_client.hpp"
8 #include "azure/storage/blobs/blob_options.hpp"
9 #include "azure/storage/blobs/blob_responses.hpp"
10 #include "azure/storage/blobs/protocol/blob_rest_client.hpp"
11 #include "azure/storage/common/storage_credential.hpp"
12 
13 #include <string>
14 
15 namespace Azure { namespace Storage { namespace Blobs {
16 
26  class PageBlobClient : public BlobClient {
27  public:
40  const std::string& connectionString,
41  const std::string& containerName,
42  const std::string& blobName,
43  const PageBlobClientOptions& options = PageBlobClientOptions());
44 
56  explicit PageBlobClient(
57  const std::string& blobUri,
58  std::shared_ptr<SharedKeyCredential> credential,
59  const PageBlobClientOptions& options = PageBlobClientOptions());
60 
71  explicit PageBlobClient(
72  const std::string& blobUri,
73  std::shared_ptr<Core::Credentials::ClientSecretCredential> credential,
74  const PageBlobClientOptions& options = PageBlobClientOptions());
75 
86  explicit PageBlobClient(
87  const std::string& blobUri,
88  const PageBlobClientOptions& options = PageBlobClientOptions());
89 
99  PageBlobClient WithSnapshot(const std::string& snapshot) const;
100 
109  PageBlobClient WithVersionId(const std::string& versionId) const;
110 
121  Azure::Core::Response<CreatePageBlobResult> Create(
122  int64_t blobContentLength,
123  const CreatePageBlobOptions& options = CreatePageBlobOptions()) const;
124 
135  Azure::Core::Response<UploadPageBlobPagesResult> UploadPages(
136  int64_t offset,
137  Azure::Core::Http::BodyStream* content,
138  const UploadPageBlobPagesOptions& options = UploadPageBlobPagesOptions()) const;
139 
158  Azure::Core::Response<UploadPageBlobPagesFromUriResult> UploadPagesFromUri(
159  int64_t destinationoffset,
160  std::string sourceUri,
161  int64_t sourceOffset,
162  int64_t sourceLength,
163  const UploadPageBlobPagesFromUriOptions& options
165 
176  Azure::Core::Response<ClearPageBlobPagesResult> ClearPages(
177  int64_t offset,
178  int64_t length,
179  const ClearPageBlobPagesOptions& options = ClearPageBlobPagesOptions()) const;
180 
191  Azure::Core::Response<ResizePageBlobResult> Resize(
192  int64_t blobContentLength,
193  const ResizePageBlobOptions& options = ResizePageBlobOptions()) const;
194 
201  Azure::Core::Response<GetPageBlobPageRangesResult> GetPageRanges(
203 
215  Azure::Core::Response<StartCopyPageBlobIncrementalResult> StartCopyIncremental(
216  const std::string& sourceUri,
219 
220  private:
221  explicit PageBlobClient(BlobClient blobClient);
222  friend class BlobClient;
223  };
224 
225 }}} // namespace Azure::Storage::Blobs
Azure::Storage::Blobs::PageBlobClient::UploadPagesFromUri
Azure::Core::Response< UploadPageBlobPagesFromUriResult > UploadPagesFromUri(int64_t destinationoffset, std::string sourceUri, int64_t sourceOffset, int64_t sourceLength, const UploadPageBlobPagesFromUriOptions &options=UploadPageBlobPagesFromUriOptions()) const
Writes a range of pages to a page blob where the contents are read from a uri.
Definition: page_blob_client.cpp:128
Azure::Storage::Blobs::BlobClient
The BlobClient allows you to manipulate Azure Storage blobs.
Definition: blob_client.hpp:30
Azure::Storage::Blobs::PageBlobClient::PageBlobClient
PageBlobClient(const std::string &blobUri, std::shared_ptr< SharedKeyCredential > credential, const PageBlobClientOptions &options=PageBlobClientOptions())
Initialize a new instance of PageBlobClient.
Definition: page_blob_client.cpp:24
Azure::Storage::Blobs::CreatePageBlobOptions
Optional parameters for PageBlobClient::Create.
Definition: blob_options.hpp:1238
Azure::Storage::Blobs::PageBlobClient::WithSnapshot
PageBlobClient WithSnapshot(const std::string &snapshot) const
Initializes a new instance of the PageBlobClient class with an identical uri source but the specified...
Definition: page_blob_client.cpp:47
Azure::Storage::Blobs::PageBlobClient::Resize
Azure::Core::Response< ResizePageBlobResult > Resize(int64_t blobContentLength, const ResizePageBlobOptions &options=ResizePageBlobOptions()) 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:184
Azure::Storage::Blobs::PageBlobClient
Definition: page_blob_client.hpp:26
Azure::Storage::Blobs::PageBlobClient::CreateFromConnectionString
static PageBlobClient CreateFromConnectionString(const std::string &connectionString, const std::string &containerName, const std::string &blobName, const PageBlobClientOptions &options=PageBlobClientOptions())
Initialize a new instance of PageBlobClient.
Definition: page_blob_client.cpp:13
Azure::Storage::Blobs::PageBlobClient::UploadPages
Azure::Core::Response< UploadPageBlobPagesResult > UploadPages(int64_t offset, Azure::Core::Http::BodyStream *content, const UploadPageBlobPagesOptions &options=UploadPageBlobPagesOptions()) const
Writes content to a range of pages in a page blob, starting at offset.
Definition: page_blob_client.cpp:102
Azure::Storage::Blobs::PageBlobClient::GetPageRanges
Azure::Core::Response< GetPageBlobPageRangesResult > GetPageRanges(const GetPageBlobPageRangesOptions &options=GetPageBlobPageRangesOptions()) const
Returns the list of valid page ranges for a page blob or snapshot of a page blob.
Definition: page_blob_client.cpp:207
Azure::Storage::Blobs::UploadPageBlobPagesFromUriOptions
Optional parameters for PageBlobClient::UploadPagesFromUri.
Definition: blob_options.hpp:1305
Azure::Storage::Blobs::StartCopyPageBlobIncrementalOptions
Optional parameters for PageBlobClient::StartCopyIncremental.
Definition: blob_options.hpp:1411
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:61
Azure::Storage::Blobs::ResizePageBlobOptions
Optional parameters for PageBlobClient::Resize.
Definition: blob_options.hpp:1351
Azure::Storage::Blobs::PageBlobClient::ClearPages
Azure::Core::Response< ClearPageBlobPagesResult > ClearPages(int64_t offset, int64_t length, const ClearPageBlobPagesOptions &options=ClearPageBlobPagesOptions()) const
Clears one or more pages from the page blob, as specificed by offset and length.
Definition: page_blob_client.cpp:160
Azure::Storage::Blobs::GetPageBlobPageRangesOptions
Optional parameters for PageBlobClient::GetPageRanges.
Definition: blob_options.hpp:1367
Azure::Storage::Blobs::UploadPageBlobPagesOptions
Optional parameters for PageBlobClient::UploadPages.
Definition: blob_options.hpp:1275
Azure::Storage::Blobs::PageBlobClientOptions
Page blob client options used to initalize PageBlobClient.
Definition: blob_options.hpp:555
Azure::Storage::Blobs::ClearPageBlobPagesOptions
Optional parameters for PageBlobClient::ClearPages.
Definition: blob_options.hpp:1335
Azure::Storage::Blobs::PageBlobClient::Create
Azure::Core::Response< CreatePageBlobResult > Create(int64_t blobContentLength, const CreatePageBlobOptions &options=CreatePageBlobOptions()) 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:75
Azure::Storage::Blobs::PageBlobClient::StartCopyIncremental
Azure::Core::Response< StartCopyPageBlobIncrementalResult > StartCopyIncremental(const std::string &sourceUri, const StartCopyPageBlobIncrementalOptions &options=StartCopyPageBlobIncrementalOptions()) 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:245