azure-storage-blobs
append_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/protocol/blob_rest_client.hpp"
10 #include "azure/storage/common/storage_credential.hpp"
11 
12 #include <string>
13 
14 namespace Azure { namespace Storage { namespace Blobs {
15 
24  class AppendBlobClient : public BlobClient {
25  public:
38  const std::string& connectionString,
39  const std::string& containerName,
40  const std::string& blobName,
42 
54  explicit AppendBlobClient(
55  const std::string& blobUri,
56  std::shared_ptr<SharedKeyCredential> credential,
58 
69  explicit AppendBlobClient(
70  const std::string& blobUri,
71  std::shared_ptr<Core::Credentials::ClientSecretCredential> credential,
73 
84  explicit AppendBlobClient(
85  const std::string& blobUri,
87 
97  AppendBlobClient WithSnapshot(const std::string& snapshot) const;
98 
107  AppendBlobClient WithVersionId(const std::string& versionId) const;
108 
117  Azure::Core::Response<CreateAppendBlobResult> Create(
118  const CreateAppendBlobOptions& options = CreateAppendBlobOptions()) const;
119 
130  Azure::Core::Response<AppendBlockResult> AppendBlock(
131  Azure::Core::Http::BodyStream* content,
132  const AppendBlockOptions& options = AppendBlockOptions()) const;
133 
146  Azure::Core::Response<AppendBlockFromUriResult> AppendBlockFromUri(
147  const std::string& sourceUri,
148  const AppendBlockFromUriOptions& options = AppendBlockFromUriOptions()) const;
149 
156  Azure::Core::Response<SealAppendBlobResult> Seal(
157  const SealAppendBlobOptions& options = SealAppendBlobOptions()) const;
158 
159  private:
160  explicit AppendBlobClient(BlobClient blobClient);
161  friend class BlobClient;
162  };
163 
164 }}} // namespace Azure::Storage::Blobs
Azure::Storage::Blobs::AppendBlobClient::Create
Azure::Core::Response< CreateAppendBlobResult > Create(const CreateAppendBlobOptions &options=CreateAppendBlobOptions()) const
Creates a new 0-length append blob. The content of any existing blob is overwritten with the newly in...
Definition: append_blob_client.cpp:75
Azure::Storage::Blobs::AppendBlobClient::WithSnapshot
AppendBlobClient WithSnapshot(const std::string &snapshot) const
Initializes a new instance of the AppendBlobClient class with an identical uri source but the specifi...
Definition: append_blob_client.cpp:47
Azure::Storage::Blobs::AppendBlobClient::AppendBlobClient
AppendBlobClient(const std::string &blobUri, std::shared_ptr< SharedKeyCredential > credential, const AppendBlobClientOptions &options=AppendBlobClientOptions())
Initialize a new instance of AppendBlobClient.
Definition: append_blob_client.cpp:22
Azure::Storage::Blobs::AppendBlockOptions
Optional parameters for AppendBlobClient::AppendBlock.
Definition: blob_options.hpp:1151
Azure::Storage::Blobs::BlobClient
The BlobClient allows you to manipulate Azure Storage blobs.
Definition: blob_client.hpp:30
Azure::Storage::Blobs::AppendBlobClientOptions
Append blob client options used to initalize AppendBlobClient.
Definition: blob_options.hpp:548
Azure::Storage::Blobs::AppendBlockFromUriOptions
Optional parameters for AppendBlobClient::AppendBlockFromUri.
Definition: blob_options.hpp:1181
Azure::Storage::Blobs::CreateAppendBlobOptions
Optional parameters for AppendBlobClient::Create.
Definition: blob_options.hpp:1125
Azure::Storage::Blobs::AppendBlobClient::AppendBlockFromUri
Azure::Core::Response< AppendBlockFromUriResult > AppendBlockFromUri(const std::string &sourceUri, const AppendBlockFromUriOptions &options=AppendBlockFromUriOptions()) const
Commits a new block of data, represented by the content BodyStream to the end of the existing append ...
Definition: append_blob_client.cpp:124
Azure::Storage::Blobs::AppendBlobClient::WithVersionId
AppendBlobClient WithVersionId(const std::string &versionId) const
Creates a clone of this instance that references a version ID rather than the base blob.
Definition: append_blob_client.cpp:61
Azure::Storage::Blobs::SealAppendBlobOptions
Optional parameters for AppendBlobClient::Seal.
Definition: blob_options.hpp:1222
Azure::Storage::Blobs::AppendBlobClient::AppendBlock
Azure::Core::Response< AppendBlockResult > AppendBlock(Azure::Core::Http::BodyStream *content, const AppendBlockOptions &options=AppendBlockOptions()) const
Commits a new block of data, represented by the content BodyStream to the end of the existing append ...
Definition: append_blob_client.cpp:98
Azure::Storage::Blobs::AppendBlobClient
The AppendBlobClient allows you to manipulate Azure Storage append blobs.
Definition: append_blob_client.hpp:24
Azure::Storage::Blobs::AppendBlobClient::CreateFromConnectionString
static AppendBlobClient CreateFromConnectionString(const std::string &connectionString, const std::string &containerName, const std::string &blobName, const AppendBlobClientOptions &options=AppendBlobClientOptions())
Initialize a new instance of AppendBlobClient.
Definition: append_blob_client.cpp:11
Azure::Storage::Blobs::AppendBlobClient::Seal
Azure::Core::Response< SealAppendBlobResult > Seal(const SealAppendBlobOptions &options=SealAppendBlobOptions()) const
Seals the append blob, making it read only. Any subsequent appends will fail.
Definition: append_blob_client.cpp:164