azure-storage-files-datalake
Loading...
Searching...
No Matches
datalake_directory_client.hpp
1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4#pragma once
5
6#include "azure/storage/files/datalake/datalake_options.hpp"
7#include "azure/storage/files/datalake/datalake_path_client.hpp"
8#include "azure/storage/files/datalake/datalake_responses.hpp"
9
10#include <azure/core/credentials/credentials.hpp>
11#include <azure/core/internal/http/pipeline.hpp>
12#include <azure/core/response.hpp>
13#include <azure/storage/common/storage_credential.hpp>
14
15#include <memory>
16#include <string>
17#include <vector>
18
19namespace Azure { namespace Storage { namespace Files { namespace DataLake {
20
24 public:
34 const std::string& connectionString,
35 const std::string& fileSystemName,
36 const std::string& directoryName,
38
46 const std::string& directoryUrl,
47 std::shared_ptr<StorageSharedKeyCredential> credential,
49
57 const std::string& directoryUrl,
58 std::shared_ptr<const Core::Credentials::TokenCredential> credential,
60
67 const std::string& directoryUrl,
69
75 DataLakeFileClient GetFileClient(const std::string& fileName) const;
76
82 DataLakeDirectoryClient GetSubdirectoryClient(const std::string& subdirectoryName) const;
83
90 std::string GetUrl() const { return m_blobClient.GetUrl(); }
91
101 Azure::Response<Models::CreateDirectoryResult> Create(
103 const Azure::Core::Context& context = Azure::Core::Context()) const
104 {
106 }
107
116 Azure::Response<Models::CreateDirectoryResult> CreateIfNotExists(
118 const Azure::Core::Context& context = Azure::Core::Context()) const
119 {
121 Models::PathResourceType::Directory, options, context);
122 }
123
135 Azure::Response<DataLakeFileClient> RenameFile(
136 const std::string& fileName,
137 const std::string& destinationFilePath,
138 const RenameFileOptions& options = RenameFileOptions(),
139 const Azure::Core::Context& context = Azure::Core::Context()) const;
140
153 Azure::Response<DataLakeDirectoryClient> RenameSubdirectory(
154 const std::string& subdirectoryName,
155 const std::string& destinationDirectoryPath,
157 const Azure::Core::Context& context = Azure::Core::Context()) const;
158
167 Azure::Response<Models::DeleteDirectoryResult> DeleteEmpty(
169 const Azure::Core::Context& context = Azure::Core::Context()) const
170 {
171 return this->Delete(false, options, context);
172 }
173
183 Azure::Response<Models::DeleteDirectoryResult> DeleteEmptyIfExists(
185 const Azure::Core::Context& context = Azure::Core::Context()) const
186 {
187 return this->DeleteIfExists(false, options, context);
188 }
189
198 Azure::Response<Models::DeleteDirectoryResult> DeleteRecursive(
200 const Azure::Core::Context& context = Azure::Core::Context()) const
201 {
202 return this->Delete(true, options, context);
203 }
204
213 Azure::Response<Models::DeleteDirectoryResult> DeleteRecursiveIfExists(
215 const Azure::Core::Context& context = Azure::Core::Context()) const
216 {
217 return this->DeleteIfExists(true, options, context);
218 }
219
231 bool recursive,
232 const ListPathsOptions& options = ListPathsOptions(),
233 const Azure::Core::Context& context = Azure::Core::Context()) const;
234
235 private:
237 Azure::Core::Url directoryUrl,
238 Blobs::BlobClient blobClient,
239 std::shared_ptr<Azure::Core::Http::_internal::HttpPipeline> pipeline,
240 _detail::DatalakeClientConfiguration clientConfiguration)
242 std::move(directoryUrl),
243 std::move(blobClient),
244 pipeline,
245 std::move(clientConfiguration))
246 {
247 }
248
249 Azure::Response<Models::DeleteDirectoryResult> Delete(
250 bool recursive,
252 const Azure::Core::Context& context = Azure::Core::Context()) const;
253
254 Azure::Response<Models::DeleteDirectoryResult> DeleteIfExists(
255 bool recursive,
257 const Azure::Core::Context& context = Azure::Core::Context()) const;
258
259 friend class DataLakeFileSystemClient;
260 };
261}}}} // namespace Azure::Storage::Files::DataLake
DataLake Directory Client.
Definition datalake_directory_client.hpp:23
static DataLakeDirectoryClient CreateFromConnectionString(const std::string &connectionString, const std::string &fileSystemName, const std::string &directoryName, const DataLakeClientOptions &options=DataLakeClientOptions())
Create from connection string.
Azure::Response< Models::DeleteDirectoryResult > DeleteRecursiveIfExists(const DeleteDirectoryOptions &options=DeleteDirectoryOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Deletes the directory and all its subdirectories and files if the directory exists.
Definition datalake_directory_client.hpp:213
std::string GetUrl() const
Gets the directory's primary URL endpoint. This is the endpoint used for blob storage available featu...
Definition datalake_directory_client.hpp:90
Azure::Response< DataLakeDirectoryClient > RenameSubdirectory(const std::string &subdirectoryName, const std::string &destinationDirectoryPath, const RenameSubdirectoryOptions &options=RenameSubdirectoryOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Renames a directory. By default, the destination is overwritten and if the destination already exists...
Azure::Response< Models::DeleteDirectoryResult > DeleteRecursive(const DeleteDirectoryOptions &options=DeleteDirectoryOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Deletes the directory and all its subdirectories and files.
Definition datalake_directory_client.hpp:198
Azure::Response< Models::CreateDirectoryResult > Create(const CreateDirectoryOptions &options=CreateDirectoryOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Create a directory. By default, the destination is overwritten and if the destination already exists ...
Definition datalake_directory_client.hpp:101
DataLakeDirectoryClient(const std::string &directoryUrl, const DataLakeClientOptions &options=DataLakeClientOptions())
Anonymous/SAS/customized pipeline auth.
DataLakeDirectoryClient GetSubdirectoryClient(const std::string &subdirectoryName) const
Create a DataLakeDirectoryClient from current DataLakeDirectoryClient.
Azure::Response< Models::CreateDirectoryResult > CreateIfNotExists(const CreateDirectoryOptions &options=CreateDirectoryOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Create a directory. If it already exists, nothing will happen.
Definition datalake_directory_client.hpp:116
DataLakeDirectoryClient(const std::string &directoryUrl, std::shared_ptr< StorageSharedKeyCredential > credential, const DataLakeClientOptions &options=DataLakeClientOptions())
Shared key authentication client.
Azure::Response< DataLakeFileClient > RenameFile(const std::string &fileName, const std::string &destinationFilePath, const RenameFileOptions &options=RenameFileOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Renames a file. By default, the destination is overwritten and if the destination already exists and ...
Azure::Response< Models::DeleteDirectoryResult > DeleteEmptyIfExists(const DeleteDirectoryOptions &options=DeleteDirectoryOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Deletes the empty directory if it already exists. Throws exception if directory is not empty.
Definition datalake_directory_client.hpp:183
Azure::Response< Models::DeleteDirectoryResult > DeleteEmpty(const DeleteDirectoryOptions &options=DeleteDirectoryOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Deletes the empty directory. Throws exception if directory is not empty.
Definition datalake_directory_client.hpp:167
DataLakeFileClient GetFileClient(const std::string &fileName) const
Create a FileClient from current DataLakeDirectoryClient.
ListPathsPagedResponse ListPaths(bool recursive, const ListPathsOptions &options=ListPathsOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns a sequence of paths in this directory. Enumerating the paths may make multiple requests to th...
DataLakeDirectoryClient(const std::string &directoryUrl, std::shared_ptr< const Core::Credentials::TokenCredential > credential, const DataLakeClientOptions &options=DataLakeClientOptions())
Bearer token authentication client.
The DataLakeFileClient allows you to manipulate Azure Storage DataLake files.
Definition datalake_file_client.hpp:25
The DataLakeFileSystemClient allows you to manipulate Azure Storage DataLake files.
Definition datalake_file_system_client.hpp:28
The DataLakePathClient allows you to manipulate Azure Storage DataLake files.
Definition datalake_path_client.hpp:26
Blobs::BlobClient m_blobClient
Blob Client for this path client.
Definition datalake_path_client.hpp:305
Azure::Response< Models::CreatePathResult > CreateIfNotExists(Models::PathResourceType type, const CreatePathOptions &options=CreatePathOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates a file or directory. By default, the destination is not changed if it already exists.
Azure::Response< Models::CreatePathResult > Create(Models::PathResourceType type, const CreatePathOptions &options=CreatePathOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates a file or directory. By default, the destination is overwritten and if the destination alread...
Response type for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::ListPaths and Azure::Sto...
Definition datalake_responses.hpp:832
AZ_STORAGE_FILES_DATALAKE_DLLEXPORT static const PathResourceType Directory
Definition rest_client.hpp:134
Optional parameters for Azure::Storage::Files::DataLake::DataLakePathClient::Create.
Definition datalake_options.hpp:657
Client options used to initialize all DataLake clients.
Definition datalake_options.hpp:160
Optional parameters for Azure::Storage::Files::DataLake::DataLakeDirectoryClient::Delete.
Definition datalake_options.hpp:883
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::ListPaths.
Definition datalake_options.hpp:321
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::RenameDirectory.
Definition datalake_options.hpp:425
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::RenameFile.
Definition datalake_options.hpp:847