azure-storage-files-datalake
Loading...
Searching...
No Matches
datalake_file_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/blobs/block_blob_client.hpp>
14#include <azure/storage/common/storage_credential.hpp>
15
16#include <cstdint>
17#include <memory>
18#include <string>
19
20namespace Azure { namespace Storage { namespace Files { namespace DataLake {
21
26 public:
36 const std::string& connectionString,
37 const std::string& fileSystemName,
38 const std::string& fileName,
40
48 const std::string& fileUrl,
49 std::shared_ptr<StorageSharedKeyCredential> credential,
51
59 const std::string& fileUrl,
60 std::shared_ptr<const Core::Credentials::TokenCredential> credential,
62
69 const std::string& fileUrl,
71
78 std::string GetUrl() const { return m_blobClient.GetUrl(); }
79
97 Azure::Response<Models::AppendFileResult> Append(
98 Azure::Core::IO::BodyStream& content,
99 int64_t offset,
100 const AppendFileOptions& options = AppendFileOptions(),
101 const Azure::Core::Context& context = Azure::Core::Context()) const;
102
119 Azure::Response<Models::FlushFileResult> Flush(
120 int64_t position,
121 const FlushFileOptions& options = FlushFileOptions(),
122 const Azure::Core::Context& context = Azure::Core::Context()) const;
123
133 Azure::Response<Models::CreateFileResult> Create(
134 const CreateFileOptions& options = CreateFileOptions(),
135 const Azure::Core::Context& context = Azure::Core::Context()) const
136 {
138 }
139
148 Azure::Response<Models::CreateFileResult> CreateIfNotExists(
149 const CreateFileOptions& options = CreateFileOptions(),
150 const Azure::Core::Context& context = Azure::Core::Context()) const
151 {
153 Models::PathResourceType::File, options, context);
154 }
155
163 Azure::Response<Models::DeleteFileResult> Delete(
164 const DeleteFileOptions& options = DeleteFileOptions(),
165 const Azure::Core::Context& context = Azure::Core::Context()) const;
166
174 Azure::Response<Models::DeleteFileResult> DeleteIfExists(
175 const DeleteFileOptions& options = DeleteFileOptions(),
176 const Azure::Core::Context& context = Azure::Core::Context()) const;
177
188 Azure::Response<Models::DownloadFileResult> Download(
189 const DownloadFileOptions& options = DownloadFileOptions(),
190 const Azure::Core::Context& context = Azure::Core::Context()) const;
191
203 Azure::Response<Models::UploadFileFromResult> UploadFrom(
204 const uint8_t* buffer,
205 size_t bufferSize,
207 const Azure::Core::Context& context = Azure::Core::Context()) const;
208
219 Azure::Response<Models::UploadFileFromResult> UploadFrom(
220 const std::string& fileName,
222 const Azure::Core::Context& context = Azure::Core::Context()) const;
223
236 Azure::Response<Models::DownloadFileToResult> DownloadTo(
237 uint8_t* buffer,
238 size_t bufferSize,
239 const DownloadFileToOptions& options = DownloadFileToOptions(),
240 const Azure::Core::Context& context = Azure::Core::Context()) const;
241
252 Azure::Response<Models::DownloadFileToResult> DownloadTo(
253 const std::string& fileName,
254 const DownloadFileToOptions& options = DownloadFileToOptions(),
255 const Azure::Core::Context& context = Azure::Core::Context()) const;
256
266 Azure::Response<Models::ScheduleFileDeletionResult> ScheduleDeletion(
267 ScheduleFileExpiryOriginType expiryOrigin,
269 const Azure::Core::Context& context = Azure::Core::Context()) const;
270
279 Azure::Response<Models::QueryFileResult> Query(
280 const std::string& querySqlExpression,
281 const QueryFileOptions& options = QueryFileOptions(),
282 const Azure::Core::Context& context = Azure::Core::Context()) const;
283
284 private:
285 explicit DataLakeFileClient(
286 Azure::Core::Url fileUrl,
287 Blobs::BlobClient blobClient,
288 std::shared_ptr<Azure::Core::Http::_internal::HttpPipeline> pipeline,
289 _detail::DatalakeClientConfiguration clientConfiguration)
291 std::move(fileUrl),
292 std::move(blobClient),
293 pipeline,
294 std::move(clientConfiguration))
295 {
296 }
297
298 friend class DataLakeFileSystemClient;
299 friend class DataLakeDirectoryClient;
300 };
301}}}} // 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
Azure::Response< Models::ScheduleFileDeletionResult > ScheduleDeletion(ScheduleFileExpiryOriginType expiryOrigin, const ScheduleFileDeletionOptions &options=ScheduleFileDeletionOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Schedules the file for deletion.
Azure::Response< Models::UploadFileFromResult > UploadFrom(const std::string &fileName, const UploadFileFromOptions &options=UploadFileFromOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates a new file, or updates the content of an existing file. Updating an existing file overwrites ...
Azure::Response< Models::UploadFileFromResult > UploadFrom(const uint8_t *buffer, size_t bufferSize, const UploadFileFromOptions &options=UploadFileFromOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates a new file, or updates the content of an existing file. Updating an existing file overwrites ...
Azure::Response< Models::DeleteFileResult > DeleteIfExists(const DeleteFileOptions &options=DeleteFileOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Deletes the file if it already exists.
Azure::Response< Models::QueryFileResult > Query(const std::string &querySqlExpression, const QueryFileOptions &options=QueryFileOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns the result of a query against the file.
Azure::Response< Models::AppendFileResult > Append(Azure::Core::IO::BodyStream &content, int64_t offset, const AppendFileOptions &options=AppendFileOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Uploads data to be appended to a file. Data can only be appended to a file.
DataLakeFileClient(const std::string &fileUrl, std::shared_ptr< StorageSharedKeyCredential > credential, const DataLakeClientOptions &options=DataLakeClientOptions())
Shared key authentication client.
static DataLakeFileClient CreateFromConnectionString(const std::string &connectionString, const std::string &fileSystemName, const std::string &fileName, const DataLakeClientOptions &options=DataLakeClientOptions())
Create from connection string.
Azure::Response< Models::FlushFileResult > Flush(int64_t position, const FlushFileOptions &options=FlushFileOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Flushes previous uploaded data to a file.
Azure::Response< Models::DownloadFileToResult > DownloadTo(const std::string &fileName, const DownloadFileToOptions &options=DownloadFileToOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Downloads a file or a file range from the service to a file using parallel requests.
Azure::Response< Models::DeleteFileResult > Delete(const DeleteFileOptions &options=DeleteFileOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Deletes the file.
Azure::Response< Models::CreateFileResult > Create(const CreateFileOptions &options=CreateFileOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Create a file. By default, the destination is overwritten and if the destination already exists and h...
Definition datalake_file_client.hpp:133
DataLakeFileClient(const std::string &fileUrl, std::shared_ptr< const Core::Credentials::TokenCredential > credential, const DataLakeClientOptions &options=DataLakeClientOptions())
Bearer token authentication client.
std::string GetUrl() const
Gets the file's primary URL endpoint. This is the endpoint used for blob storage available features i...
Definition datalake_file_client.hpp:78
Azure::Response< Models::CreateFileResult > CreateIfNotExists(const CreateFileOptions &options=CreateFileOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Create a file. If it already exists, it will remain unchanged.
Definition datalake_file_client.hpp:148
DataLakeFileClient(const std::string &fileUrl, const DataLakeClientOptions &options=DataLakeClientOptions())
Anonymous/SAS/customized pipeline auth.
Azure::Response< Models::DownloadFileToResult > DownloadTo(uint8_t *buffer, size_t bufferSize, const DownloadFileToOptions &options=DownloadFileToOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Downloads a file or a file range from the service to a memory buffer using parallel requests.
Azure::Response< Models::DownloadFileResult > Download(const DownloadFileOptions &options=DownloadFileOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Download the contents of a file. For download operations, range requests are supported.
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...
AZ_STORAGE_FILES_DATALAKE_DLLEXPORT static const PathResourceType File
Definition rest_client.hpp:136
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::Append.
Definition datalake_options.hpp:447
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::DataLakeFileClient::Delete.
Definition datalake_options.hpp:869
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::Download.
Definition datalake_options.hpp:814
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::Flush.
Definition datalake_options.hpp:490
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::Query.
Definition datalake_options.hpp:982
Options for scheduling the deletion of a path.
Definition datalake_options.hpp:629
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::UploadFrom.
Definition datalake_options.hpp:933