Loading [MathJax]/jax/output/HTML-CSS/config.js
azure-storage-blobs
All Classes Functions Variables Pages
blob_container_client.hpp
1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4#pragma once
5
6#include "azure/storage/blobs/blob_client.hpp"
7
8#include <cstdint>
9#include <memory>
10#include <string>
11
12namespace Azure { namespace Storage { namespace Blobs {
13
14 class BlobLeaseClient;
15 class BlobContainerBatch;
16
21 class BlobContainerClient final {
22 public:
34 const std::string& connectionString,
35 const std::string& blobContainerName,
36 const BlobClientOptions& options = BlobClientOptions());
37
49 explicit BlobContainerClient(
50 const std::string& blobContainerUrl,
51 std::shared_ptr<StorageSharedKeyCredential> credential,
52 const BlobClientOptions& options = BlobClientOptions());
53
64 explicit BlobContainerClient(
65 const std::string& blobContainerUrl,
66 std::shared_ptr<Core::Credentials::TokenCredential> credential,
67 const BlobClientOptions& options = BlobClientOptions());
68
79 explicit BlobContainerClient(
80 const std::string& blobContainerUrl,
81 const BlobClientOptions& options = BlobClientOptions());
82
90 BlobClient GetBlobClient(const std::string& blobName) const;
91
99 BlockBlobClient GetBlockBlobClient(const std::string& blobName) const;
100
108 AppendBlobClient GetAppendBlobClient(const std::string& blobName) const;
109
117 PageBlobClient GetPageBlobClient(const std::string& blobName) const;
118
124 std::string GetUrl() const { return m_blobContainerUrl.GetAbsoluteUrl(); }
125
134 Azure::Response<Models::CreateBlobContainerResult> Create(
136 const Azure::Core::Context& context = Azure::Core::Context()) const;
137
148 Azure::Response<Models::CreateBlobContainerResult> CreateIfNotExists(
150 const Azure::Core::Context& context = Azure::Core::Context()) const;
151
160 Azure::Response<Models::DeleteBlobContainerResult> Delete(
162 const Azure::Core::Context& context = Azure::Core::Context()) const;
163
173 Azure::Response<Models::DeleteBlobContainerResult> DeleteIfExists(
175 const Azure::Core::Context& context = Azure::Core::Context()) const;
176
185 Azure::Response<Models::BlobContainerProperties> GetProperties(
187 const Azure::Core::Context& context = Azure::Core::Context()) const;
188
197 Azure::Response<Models::SetBlobContainerMetadataResult> SetMetadata(
198 Metadata metadata,
200 const Azure::Core::Context& context = Azure::Core::Context()) const;
201
212 const ListBlobsOptions& options = ListBlobsOptions(),
213 const Azure::Core::Context& context = Azure::Core::Context()) const;
214
228 const std::string& delimiter,
229 const ListBlobsOptions& options = ListBlobsOptions(),
230 const Azure::Core::Context& context = Azure::Core::Context()) const;
231
240 Azure::Response<Models::BlobContainerAccessPolicy> GetAccessPolicy(
242 const Azure::Core::Context& context = Azure::Core::Context()) const;
243
252 Azure::Response<Models::SetBlobContainerAccessPolicyResult> SetAccessPolicy(
254 const Azure::Core::Context& context = Azure::Core::Context()) const;
255
266 Azure::Response<Models::DeleteBlobResult> DeleteBlob(
267 const std::string& blobName,
268 const DeleteBlobOptions& options = DeleteBlobOptions(),
269 const Azure::Core::Context& context = Azure::Core::Context()) const;
270
282 Azure::Response<BlockBlobClient> UploadBlob(
283 const std::string& blobName,
284 Azure::Core::IO::BodyStream& content,
286 const Azure::Core::Context& context = Azure::Core::Context()) const;
287
302 const std::string& tagFilterSqlExpression,
304 const Azure::Core::Context& context = Azure::Core::Context()) const;
305
313
324 Response<Models::SubmitBlobBatchResult> SubmitBatch(
325 const BlobContainerBatch& batch,
327 const Core::Context& context = Core::Context()) const;
328
336 Azure::Response<Models::AccountInfo> GetAccountInfo(
338 const Azure::Core::Context& context = Azure::Core::Context()) const;
339
340 private:
341 Azure::Core::Url m_blobContainerUrl;
342 std::shared_ptr<Azure::Core::Http::_internal::HttpPipeline> m_pipeline;
343 Azure::Nullable<EncryptionKey> m_customerProvidedKey;
344 Azure::Nullable<std::string> m_encryptionScope;
345
346 std::shared_ptr<Azure::Core::Http::_internal::HttpPipeline> m_batchRequestPipeline;
347 std::shared_ptr<Azure::Core::Http::_internal::HttpPipeline> m_batchSubrequestPipeline;
348
349 friend class BlobServiceClient;
350 friend class BlobLeaseClient;
351 friend class BlobContainerBatch;
352 friend class Files::DataLake::DataLakeFileSystemClient;
353 };
354
355}}} // namespace Azure::Storage::Blobs
The AppendBlobClient allows you to manipulate Azure Storage append blobs.
Definition append_blob_client.hpp:21
The BlobClient allows you to manipulate Azure Storage blobs.
Definition blob_client.hpp:39
A batch object allows you to batch multiple operations in a single request via Azure::Storage::Blobs:...
Definition blob_batch.hpp:149
Definition blob_container_client.hpp:21
ListBlobsByHierarchyPagedResponse ListBlobsByHierarchy(const std::string &delimiter, const ListBlobsOptions &options=ListBlobsOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns a collection of blobs in this container. Enumerating the blobs may make multiple requests to ...
Definition blob_container_client.cpp:375
PageBlobClient GetPageBlobClient(const std::string &blobName) const
Create a new PageBlobClient object by appending blobName to the end of URL. The new PageBlobClient us...
Definition blob_container_client.cpp:241
Azure::Response< Models::DeleteBlobResult > DeleteBlob(const std::string &blobName, const DeleteBlobOptions &options=DeleteBlobOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Marks the specified blob or snapshot for deletion. The blob is later deleted during garbage collectio...
Definition blob_container_client.cpp:450
Response< Models::SubmitBlobBatchResult > SubmitBatch(const BlobContainerBatch &batch, const SubmitBlobBatchOptions &options=SubmitBlobBatchOptions(), const Core::Context &context=Core::Context()) const
Submits a batch of subrequests.
Definition blob_container_client.cpp:501
FindBlobsByTagsPagedResponse FindBlobsByTags(const std::string &tagFilterSqlExpression, const FindBlobsByTagsOptions &options=FindBlobsByTagsOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
The Filter Blobs operation enables callers to list blobs in a container whose tags match a given sear...
Definition blob_container_client.cpp:471
std::string GetUrl() const
Gets the container's primary URL endpoint.
Definition blob_container_client.hpp:124
Azure::Response< BlockBlobClient > UploadBlob(const std::string &blobName, Azure::Core::IO::BodyStream &content, const UploadBlockBlobOptions &options=UploadBlockBlobOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates a new block blob under this container. For partial block blob updates and other advanced feat...
Definition blob_container_client.cpp:459
AppendBlobClient GetAppendBlobClient(const std::string &blobName) const
Create a new AppendBlobClient object by appending blobName to the end of URL. The new AppendBlobClien...
Definition blob_container_client.cpp:236
Azure::Response< Models::CreateBlobContainerResult > Create(const CreateBlobContainerOptions &options=CreateBlobContainerOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates a new container under the specified account. If the container with the same name already exis...
Definition blob_container_client.cpp:246
static BlobContainerClient CreateFromConnectionString(const std::string &connectionString, const std::string &blobContainerName, const BlobClientOptions &options=BlobClientOptions())
Initialize a new instance of BlobContainerClient.
Definition blob_container_client.cpp:106
BlobContainerBatch CreateBatch() const
Creates a new batch object to collect subrequests that can be submitted together via SubmitBatch.
Definition blob_container_client.cpp:499
ListBlobsPagedResponse ListBlobs(const ListBlobsOptions &options=ListBlobsOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns a sequence of blobs in this container. Enumerating the blobs may make multiple requests to th...
Definition blob_container_client.cpp:343
Azure::Response< Models::AccountInfo > GetAccountInfo(const GetAccountInfoOptions &options=GetAccountInfoOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns the sku name and account kind for the specified account.
Definition blob_container_client.cpp:520
Azure::Response< Models::SetBlobContainerAccessPolicyResult > SetAccessPolicy(const SetBlobContainerAccessPolicyOptions &options=SetBlobContainerAccessPolicyOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Sets the permissions for the specified container. The permissions indicate whether blob container dat...
Definition blob_container_client.cpp:436
Azure::Response< Models::CreateBlobContainerResult > CreateIfNotExists(const CreateBlobContainerOptions &options=CreateBlobContainerOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates a new container under the specified account. If the container with the same name already exis...
Definition blob_container_client.cpp:260
Azure::Response< Models::DeleteBlobContainerResult > DeleteIfExists(const DeleteBlobContainerOptions &options=DeleteBlobContainerOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Marks the specified container for deletion if it exists. The container and any blobs contained within...
Definition blob_container_client.cpp:294
Azure::Response< Models::BlobContainerAccessPolicy > GetAccessPolicy(const GetBlobContainerAccessPolicyOptions &options=GetBlobContainerAccessPolicyOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Gets the permissions for this container. The permissions indicate whether container data may be acces...
Definition blob_container_client.cpp:423
Azure::Response< Models::BlobContainerProperties > GetProperties(const GetBlobContainerPropertiesOptions &options=GetBlobContainerPropertiesOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns all user-defined metadata and system properties for the specified container....
Definition blob_container_client.cpp:316
BlockBlobClient GetBlockBlobClient(const std::string &blobName) const
Create a new BlockBlobClient object by appending blobName to the end of URL. The new BlockBlobClient ...
Definition blob_container_client.cpp:231
BlobClient GetBlobClient(const std::string &blobName) const
Create a new BlobClient object by appending blobName to the end of URL. The new BlobClient uses the s...
Definition blob_container_client.cpp:224
Azure::Response< Models::SetBlobContainerMetadataResult > SetMetadata(Metadata metadata, SetBlobContainerMetadataOptions options=SetBlobContainerMetadataOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Sets one or more user-defined name-value pairs for the specified container.
Definition blob_container_client.cpp:329
Azure::Response< Models::DeleteBlobContainerResult > Delete(const DeleteBlobContainerOptions &options=DeleteBlobContainerOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Marks the specified container for deletion. The container and any blobs contained within it are later...
Definition blob_container_client.cpp:282
BlobLeaseClient allows you to manipulate Azure Storage leases on containers and blobs.
Definition blob_lease_client.hpp:18
Definition blob_service_client.hpp:22
The BlockBlobClient allows you to manipulate Azure Storage block blobs.
Definition block_blob_client.hpp:31
Response type for Azure::Storage::Blobs::BlobServiceClient::FindBlobsByTags.
Definition blob_responses.hpp:297
Response type for Azure::Storage::Blobs::BlobContainerClient::ListBlobsByHierarchy.
Definition blob_responses.hpp:361
Response type for Azure::Storage::Blobs::BlobContainerClient::ListBlobs.
Definition blob_responses.hpp:325
Definition page_blob_client.hpp:23
Client options used to initialize all kinds of blob clients.
Definition blob_options.hpp:175
Optional parameters for Azure::Storage::Blobs::BlobContainerClient::Create.
Definition blob_options.hpp:310
Optional parameters for Azure::Storage::Blobs::BlobContainerClient::Delete.
Definition blob_options.hpp:338
Optional parameters for Azure::Storage::Blobs::BlobClient::Delete.
Definition blob_options.hpp:735
Optional parameters for Azure::Storage::Blobs::BlobServiceClient::FindBlobsByTags.
Definition blob_options.hpp:291
Optional parameters for Azure::Storage::Blobs::BlobServiceClient::GetAccountInfo.
Definition blob_options.hpp:277
Optional parameters for Azure::Storage::Blobs::BlobContainerClient::GetAccessPolicy.
Definition blob_options.hpp:430
Optional parameters for Azure::Storage::Blobs::BlobContainerClient::GetProperties.
Definition blob_options.hpp:368
Optional parameters for Azure::Storage::Blobs::BlobContainerClient::ListBlobs and Azure::Storage::Blo...
Definition blob_options.hpp:398
Optional parameters for Azure::Storage::Blobs::BlobContainerClient::SetAccessPolicy.
Definition blob_options.hpp:441
Optional parameters for Azure::Storage::Blobs::BlobContainerClient::SetMetadata.
Definition blob_options.hpp:379
Optional parameters for Azure::Storage::Blobs::BlobServiceClient::SubmitBatch.
Definition blob_options.hpp:1600
Optional parameters for Azure::Storage::Blobs::BlockBlobClient::Upload.
Definition blob_options.hpp:850