azure-storage-files-datalake
Loading...
Searching...
No Matches
datalake_file_system_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_responses.hpp"
8#include "azure/storage/files/datalake/datalake_service_client.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/blobs/blob_container_client.hpp>
14#include <azure/storage/common/storage_credential.hpp>
15
16#include <memory>
17#include <string>
18
19namespace Azure { namespace Storage { namespace Files { namespace DataLake {
20
21 class DataLakePathClient;
22 class DataLakeFileClient;
23 class DataLakeDirectoryClient;
24
29 public:
38 const std::string& connectionString,
39 const std::string& fileSystemName,
41
49 const std::string& fileSystemUrl,
50 std::shared_ptr<StorageSharedKeyCredential> credential,
52
60 const std::string& fileSystemUrl,
61 std::shared_ptr<const Core::Credentials::TokenCredential> credential,
63
70 const std::string& fileSystemUrl,
72
78 DataLakeFileClient GetFileClient(const std::string& fileName) const;
79
85 DataLakeDirectoryClient GetDirectoryClient(const std::string& directoryName) const;
86
93 std::string GetUrl() const { return m_blobContainerClient.GetUrl(); }
94
103 Azure::Response<Models::CreateFileSystemResult> Create(
105 const Azure::Core::Context& context = Azure::Core::Context()) const;
106
115 Azure::Response<Models::CreateFileSystemResult> CreateIfNotExists(
117 const Azure::Core::Context& context = Azure::Core::Context()) const;
118
127 Azure::Response<Models::DeleteFileSystemResult> Delete(
129 const Azure::Core::Context& context = Azure::Core::Context()) const;
130
140 Azure::Response<Models::DeleteFileSystemResult> DeleteIfExists(
142 const Azure::Core::Context& context = Azure::Core::Context()) const;
143
154 Azure::Response<Models::SetFileSystemMetadataResult> SetMetadata(
155 Storage::Metadata metadata,
157 const Azure::Core::Context& context = Azure::Core::Context()) const;
158
167 Azure::Response<Models::FileSystemProperties> GetProperties(
169 const Azure::Core::Context& context = Azure::Core::Context()) const;
170
182 bool recursive,
183 const ListPathsOptions& options = ListPathsOptions(),
184 const Azure::Core::Context& context = Azure::Core::Context()) const;
185
195 Azure::Response<Models::FileSystemAccessPolicy> GetAccessPolicy(
197 const Azure::Core::Context& context = Azure::Core::Context()) const;
198
208 Azure::Response<Models::SetFileSystemAccessPolicyResult> SetAccessPolicy(
210 const Azure::Core::Context& context = Azure::Core::Context()) const;
211
222 Azure::Response<DataLakeFileClient> RenameFile(
223 const std::string& fileName,
224 const std::string& destinationFilePath,
225 const RenameFileOptions& options = RenameFileOptions(),
226 const Azure::Core::Context& context = Azure::Core::Context()) const;
227
239 Azure::Response<DataLakeDirectoryClient> RenameDirectory(
240 const std::string& directoryName,
241 const std::string& destinationDirectoryPath,
243 const Azure::Core::Context& context = Azure::Core::Context()) const;
244
254 const Azure::Core::Context& context = Azure::Core::Context()) const;
255
266 Azure::Response<DataLakePathClient> UndeletePath(
267 const std::string& deletedPath,
268 const std::string& deletionId,
269 const UndeletePathOptions& options = UndeletePathOptions(),
270 const Azure::Core::Context& context = Azure::Core::Context()) const;
271
272 private:
273 Azure::Core::Url m_fileSystemUrl;
274 Blobs::BlobContainerClient m_blobContainerClient;
275 std::shared_ptr<Azure::Core::Http::_internal::HttpPipeline> m_pipeline;
276 _detail::DatalakeClientConfiguration m_clientConfiguration;
277
279 Azure::Core::Url fileSystemUrl,
280 Blobs::BlobContainerClient blobContainerClient,
281 std::shared_ptr<Azure::Core::Http::_internal::HttpPipeline> pipeline,
282 _detail::DatalakeClientConfiguration clientConfiguration)
283 : m_fileSystemUrl(std::move(fileSystemUrl)),
284 m_blobContainerClient(std::move(blobContainerClient)), m_pipeline(std::move(pipeline)),
285 m_clientConfiguration(std::move(clientConfiguration))
286 {
287 }
288 friend class DataLakeLeaseClient;
289 friend class DataLakeServiceClient;
290 };
291}}}} // namespace Azure::Storage::Files::DataLake
DataLake Directory Client.
Definition datalake_directory_client.hpp:23
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
DataLakeFileSystemClient(const std::string &fileSystemUrl, std::shared_ptr< StorageSharedKeyCredential > credential, const DataLakeClientOptions &options=DataLakeClientOptions())
Shared key authentication client.
Azure::Response< Models::FileSystemAccessPolicy > GetAccessPolicy(const GetFileSystemAccessPolicyOptions &options=GetFileSystemAccessPolicyOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Gets the permissions for this file system. The permissions indicate whether file system data may be a...
Azure::Response< Models::DeleteFileSystemResult > Delete(const DeleteFileSystemOptions &options=DeleteFileSystemOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Deletes the file system.
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::CreateFileSystemResult > Create(const CreateFileSystemOptions &options=CreateFileSystemOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates the file system.
Azure::Response< Models::CreateFileSystemResult > CreateIfNotExists(const CreateFileSystemOptions &options=CreateFileSystemOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates the file system if it does not exists.
Azure::Response< Models::SetFileSystemAccessPolicyResult > SetAccessPolicy(const SetFileSystemAccessPolicyOptions &options=SetFileSystemAccessPolicyOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Sets the permissions for the specified file system. The permissions indicate whether file system's da...
ListDeletedPathsPagedResponse ListDeletedPaths(const ListDeletedPathsOptions &options=ListDeletedPathsOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Gets the paths that have recently been soft deleted in this file system.
DataLakeFileSystemClient(const std::string &fileSystemUrl, std::shared_ptr< const Core::Credentials::TokenCredential > credential, const DataLakeClientOptions &options=DataLakeClientOptions())
Bearer token authentication client.
Azure::Response< Models::DeleteFileSystemResult > DeleteIfExists(const DeleteFileSystemOptions &options=DeleteFileSystemOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Deletes the file system if it exists.
DataLakeFileSystemClient(const std::string &fileSystemUrl, const DataLakeClientOptions &options=DataLakeClientOptions())
Anonymous/SAS/customized pipeline auth.
Azure::Response< DataLakeDirectoryClient > RenameDirectory(const std::string &directoryName, const std::string &destinationDirectoryPath, const RenameDirectoryOptions &options=RenameDirectoryOptions(), 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::FileSystemProperties > GetProperties(const GetFileSystemPropertiesOptions &options=GetFileSystemPropertiesOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Gets the properties of file system.
ListPathsPagedResponse ListPaths(bool recursive, const ListPathsOptions &options=ListPathsOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns a sequence of paths in this file system. Enumerating the paths may make multiple requests to ...
std::string GetUrl() const
Gets the filesystem's primary URL endpoint. This is the endpoint used for blob storage available feat...
Definition datalake_file_system_client.hpp:93
static DataLakeFileSystemClient CreateFromConnectionString(const std::string &connectionString, const std::string &fileSystemName, const DataLakeClientOptions &options=DataLakeClientOptions())
Create from connection string.
DataLakeDirectoryClient GetDirectoryClient(const std::string &directoryName) const
Create a DataLakeDirectoryClient from current DataLakeFileSystemClient.
Azure::Response< DataLakePathClient > UndeletePath(const std::string &deletedPath, const std::string &deletionId, const UndeletePathOptions &options=UndeletePathOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Restores a soft deleted path.
DataLakeFileClient GetFileClient(const std::string &fileName) const
Create a DataLakeFileClient from current DataLakeFileSystemClient.
Azure::Response< Models::SetFileSystemMetadataResult > SetMetadata(Storage::Metadata metadata, const SetFileSystemMetadataOptions &options=SetFileSystemMetadataOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Sets the metadata of file system.
DataLakeLeaseClient allows you to manipulate Azure Storage leases on filesystems and paths.
Definition datalake_lease_client.hpp:19
The DataLakeServiceClient allows you to manipulate Azure Storage DataLake files.
Definition datalake_service_client.hpp:25
Response type for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::ListDeletedPaths.
Definition datalake_responses.hpp:857
Response type for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::ListPaths and Azure::Sto...
Definition datalake_responses.hpp:832
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::Create.
Definition datalake_options.hpp:249
Client options used to initialize all DataLake clients.
Definition datalake_options.hpp:160
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::Delete.
Definition datalake_options.hpp:278
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::GetAccessPolicy.
Definition datalake_options.hpp:387
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::GetProperties.
Definition datalake_options.hpp:290
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::ListPaths.
Definition datalake_options.hpp:353
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
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::SetAccessPolicy.
Definition datalake_options.hpp:399
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::SetMetadata.
Definition datalake_options.hpp:302
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::UndeletePath.
Definition datalake_options.hpp:379