Apache OpenDALâ„¢ C Binding
The C binding for Apache OpenDALâ„¢
Loading...
Searching...
No Matches
opendal.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20#ifndef _OPENDAL_H
21#define _OPENDAL_H
22
23#include <stdint.h>
24#include <stddef.h>
25#include <stdbool.h>
26
27#define OPENDAL_SEEK_SET 0
28
29#define OPENDAL_SEEK_CUR 1
30
31#define OPENDAL_SEEK_END 2
32
92
94
106typedef struct opendal_bytes {
110 uint8_t *data;
114 uintptr_t len;
118 uintptr_t capacity;
120
144
153typedef struct opendal_entry {
158 void *inner;
160
178
195
209typedef void (*opendal_log_callback)(int32_t level,
210 const char *file,
211 uint32_t line,
212 const char *message);
213
226
245
256
270
291
314
332
346
407
426
445
535
549
566
636
649
665
689
710
731
749
800
818
857
898
926
945
957
962typedef struct opendal_capability {
966 bool stat;
1002 bool read;
1038 bool write;
1126 bool copy;
1162 bool list;
1208
1216
1230
1244
1260
1276
1292
1320
1321#ifdef __cplusplus
1322extern "C" {
1323#endif // __cplusplus
1324
1329
1340
1345
1365
1370
1375 bool jitter,
1376 float factor,
1377 uint64_t min_delay_ns,
1378 uint64_t max_delay_ns,
1379 uint64_t max_times);
1380
1385 uint64_t timeout_ns,
1386 uint64_t io_timeout_ns);
1387
1392
1397
1401uint8_t opendal_metadata_mode(const struct opendal_metadata *self);
1402
1407
1412
1417
1424
1429
1436
1443
1450
1457
1464
1470char *opendal_metadata_etag(const struct opendal_metadata *self);
1471
1478
1485
1500
1505
1510
1515
1534
1575 const struct opendal_operator_options *options);
1576
1588 const struct opendal_operator_options *options,
1589 const struct opendal_operator_layers *layers);
1590
1638 const char *path,
1639 const struct opendal_bytes *bytes);
1640
1645 const char *path,
1646 const struct opendal_bytes *bytes,
1647 const struct opendal_write_options *opts);
1648
1682 const char *path,
1683 const struct opendal_bytes *bytes,
1684 const struct opendal_write_options *opts);
1685
1728 const char *path);
1729
1762 const char *path,
1763 const struct opendal_read_options *opts);
1764
1804 const char *path);
1805
1834 const char *path,
1835 const struct opendal_reader_options *opts);
1836
1876 const char *path);
1877
1882 const char *path,
1883 const struct opendal_write_options *opts);
1884
1927struct opendal_error *opendal_operator_delete(const struct opendal_operator *op, const char *path);
1928
1952 const char *path,
1953 const struct opendal_delete_options *opts);
1954
1995 const char *path);
1996
2037 const char *path);
2038
2078 const char *path);
2079
2105 const char *path,
2106 const struct opendal_stat_options *opts);
2107
2158struct opendal_result_list opendal_operator_list(const struct opendal_operator *op,
2159 const char *path);
2160
2185 const char *path,
2186 const struct opendal_list_options *opts);
2187
2224 const char *path);
2225
2270 const char *src,
2271 const char *dest);
2272
2317 const char *src,
2318 const char *dest);
2319
2374 const char *src,
2375 const char *dest,
2376 const struct opendal_copy_options *opts);
2377
2379
2408 const char *src,
2409 const char *dest);
2410
2426 const char *src,
2427 const char *dest,
2428 const struct opendal_copy_options *opts);
2429
2449
2454
2461
2468
2476
2481
2486 const char *path,
2487 uint64_t expire_secs);
2488
2493 const char *path,
2494 uint64_t expire_secs,
2495 const struct opendal_read_options *opts);
2496
2501 const char *path,
2502 uint64_t expire_secs);
2503
2508 const char *path,
2509 uint64_t expire_secs,
2510 const struct opendal_write_options *opts);
2511
2516 const char *path,
2517 uint64_t expire_secs);
2518
2523 const char *path,
2524 uint64_t expire_secs,
2525 const struct opendal_delete_options *opts);
2526
2531 const char *path,
2532 uint64_t expire_secs);
2533
2538 const char *path,
2539 uint64_t expire_secs,
2540 const struct opendal_stat_options *opts);
2541
2546
2551
2556
2561
2566
2572void opendal_string_free(char *ptr);
2573
2578
2587
2595
2603
2613 const char *start_after);
2614
2622
2630
2637
2646
2654
2662
2669
2674
2679
2684
2689 const char *cache_control);
2690
2695 const char *content_type);
2696
2701 const char *content_disposition);
2702
2707 const char *content_encoding);
2708
2713
2718 const char *if_none_match);
2719
2724 bool if_not_exists);
2725
2730
2735
2740 const struct opendal_write_user_metadata_pair *pairs,
2741 uintptr_t len);
2742
2747
2752
2757
2762
2767 const char *if_none_match);
2768
2773 int64_t if_modified_since);
2774
2779 int64_t if_unmodified_since);
2780
2785 const char *override_content_type);
2786
2791 const char *override_cache_control);
2792
2797 const char *override_content_disposition);
2798
2803
2808
2813 uint64_t offset,
2814 uint64_t length);
2815
2820
2825
2830
2835 const char *if_none_match);
2836
2841 int64_t if_modified_since);
2842
2847 int64_t if_unmodified_since);
2848
2853
2858
2863
2872 uint64_t content_length_hint);
2873
2878 const char *override_content_type);
2879
2884 const char *override_cache_control);
2885
2890 const char *override_content_disposition);
2891
2896
2901
2906
2911
2916 const char *if_none_match);
2917
2922 int64_t if_modified_since);
2923
2928 int64_t if_unmodified_since);
2929
2938 uint64_t content_length_hint);
2939
2944 uintptr_t concurrent);
2945
2950
2955
2960
2965
2970
2975
2980
2985 const char *source_version);
2986
2992
2997
3002
3012
3033 const char *key,
3034 const char *value);
3035
3040
3048char *opendal_entry_path(const struct opendal_entry *self);
3049
3059char *opendal_entry_name(const struct opendal_entry *self);
3060
3068
3073
3078 uint8_t *buf,
3079 uintptr_t len);
3080
3085 int64_t offset,
3086 int32_t whence);
3087
3092
3097 const struct opendal_bytes *bytes);
3098
3103
3118
3123
3139
3147
3152
3153#ifdef __cplusplus
3154} // extern "C"
3155#endif // __cplusplus
3156
3157#endif /* _OPENDAL_H */
struct opendal_result_presign opendal_operator_presign_write(const struct opendal_operator *op, const char *path, uint64_t expire_secs)
Presign a write operation.
struct opendal_error * opendal_operator_write(const struct opendal_operator *op, const char *path, const struct opendal_bytes *bytes)
Blocking write raw bytes to path.
struct opendal_delete_options * opendal_delete_options_new(void)
Construct a heap-allocated opendal_delete_options with default values.
struct opendal_result_operator_copier opendal_operator_copier_with(const struct opendal_operator *op, const char *src, const char *dest, const struct opendal_copy_options *opts)
Blocking create a copier to copy a file from src to dest with options.
struct opendal_result_operator_reader opendal_operator_reader_with(const struct opendal_operator *op, const char *path, const struct opendal_reader_options *opts)
Blocking create a reader for the specified path with options.
char * opendal_operator_info_get_name(const struct opendal_operator_info *self)
Return the nul-terminated operator backend's name, could be empty if underlying backend has no namesp...
struct opendal_result_presign opendal_operator_presign_delete_with(const struct opendal_operator *op, const char *path, uint64_t expire_secs, const struct opendal_delete_options *opts)
Presign a delete operation with options.
void opendal_read_options_set_content_length_hint(struct opendal_read_options *opts, uint64_t content_length_hint)
Set the known content length of the object.
void opendal_reader_options_set_chunk(struct opendal_reader_options *opts, uintptr_t chunk)
Set chunk size.
void opendal_write_options_set_if_match(struct opendal_write_options *opts, const char *if_match)
Set If-Match.
void opendal_operator_free(const struct opendal_operator *ptr)
Free the heap-allocated operator pointed by opendal_operator.
void opendal_write_options_free(struct opendal_write_options *opts)
Free the heap memory used by opendal_write_options.
void opendal_metadata_user_metadata_free(struct opendal_metadata_user_metadata *metadata)
Free the user metadata returned by opendal_metadata_user_metadata.
void opendal_stat_options_set_if_modified_since(struct opendal_stat_options *opts, int64_t if_modified_since)
Set If-Modified-Since in milliseconds since the Unix epoch.
void opendal_stat_options_set_if_none_match(struct opendal_stat_options *opts, const char *if_none_match)
Set If-None-Match.
void opendal_read_options_set_range_from(struct opendal_read_options *opts, uint64_t offset)
Set the read range to start at offset and extend to the end of the file.
void opendal_read_options_set_if_match(struct opendal_read_options *opts, const char *if_match)
Set If-Match.
struct opendal_result_presign opendal_operator_presign_stat_with(const struct opendal_operator *op, const char *path, uint64_t expire_secs, const struct opendal_stat_options *opts)
Presign a stat operation with options.
struct opendal_result_reader_seek opendal_reader_seek(struct opendal_reader *self, int64_t offset, int32_t whence)
Seek to an offset, in bytes, in a stream.
uint8_t opendal_metadata_mode(const struct opendal_metadata *self)
Return mode of the metadata: 0 for unknown, 1 for file, and 2 for dir.
struct opendal_operator_layers * opendal_operator_layers_new(void)
Construct a heap-allocated opendal_operator_layers.
void opendal_copy_options_set_if_not_exists(struct opendal_copy_options *opts, bool if_not_exists)
Set if_not_exists.
void opendal_reader_options_set_version(struct opendal_reader_options *opts, const char *version)
Set the version of the object to read.
struct opendal_error * opendal_operator_create_dir(const struct opendal_operator *op, const char *path)
Blocking create the directory in path.
void opendal_list_options_free(struct opendal_list_options *opts)
Free the heap memory used by opendal_list_options.
char * opendal_metadata_content_md5(const struct opendal_metadata *self)
Return the content md5 of the metadata.
void opendal_copier_free(struct opendal_copier *ptr)
Free the heap memory used by the opendal_copier.
char * opendal_metadata_content_encoding(const struct opendal_metadata *self)
Return the content encoding of the metadata.
void opendal_delete_options_set_version(struct opendal_delete_options *opts, const char *version)
Set the version option.
struct opendal_result_presign opendal_operator_presign_stat(const struct opendal_operator *op, const char *path, uint64_t expire_secs)
Presign a stat operation.
uintptr_t opendal_metadata_user_metadata_len(const struct opendal_metadata_user_metadata *metadata)
Return the number of key-value pairs in the user metadata.
char * opendal_metadata_cache_control(const struct opendal_metadata *self)
Return the cache control of the metadata.
struct opendal_error * opendal_copier_abort(struct opendal_copier *self)
Abort the pending copy operation.
void opendal_copy_options_set_if_match(struct opendal_copy_options *opts, const char *if_match)
Set If-Match.
struct opendal_result_presign opendal_operator_presign_read_with(const struct opendal_operator *op, const char *path, uint64_t expire_secs, const struct opendal_read_options *opts)
Presign a read operation with options.
void opendal_stat_options_set_override_content_disposition(struct opendal_stat_options *opts, const char *override_content_disposition)
Set the override Content-Disposition.
struct opendal_result_operator_new opendal_operator_new_with_layers(const char *scheme, const struct opendal_operator_options *options, const struct opendal_operator_layers *layers)
Construct an operator based on scheme, options, and explicit layers.
struct opendal_result_reader_read opendal_reader_read(struct opendal_reader *self, uint8_t *buf, uintptr_t len)
Read data from the reader.
struct opendal_result_operator_new opendal_operator_new(const char *scheme, const struct opendal_operator_options *options)
Construct an operator based on scheme and options.
struct opendal_result_stat opendal_operator_stat_with(const struct opendal_operator *op, const char *path, const struct opendal_stat_options *opts)
Blocking stat the object in path with options.
struct opendal_result_copier_next opendal_copier_next(struct opendal_copier *self)
Perform one step of the copy operation.
struct opendal_result_lister_next opendal_lister_next(struct opendal_lister *self)
Return the next object to be listed.
void opendal_delete_options_free(struct opendal_delete_options *opts)
Free the heap memory used by opendal_delete_options.
void opendal_list_options_set_recursive(struct opendal_list_options *opts, bool recursive)
Set the recursive option.
void opendal_stat_options_set_version(struct opendal_stat_options *opts, const char *version)
Set the version.
void opendal_copy_options_set_source_content_length_hint(struct opendal_copy_options *opts, uint64_t source_content_length_hint)
Set source_content_length_hint.
struct opendal_result_write opendal_writer_close_with_metadata(struct opendal_writer *ptr)
Close the writer and return the written object's metadata.
uintptr_t opendal_presigned_request_headers_len(const struct opendal_presigned_request *req)
char * opendal_operator_info_get_scheme(const struct opendal_operator_info *self)
Return the nul-terminated operator's scheme, i.e. service.
void opendal_read_options_set_version(struct opendal_read_options *opts, const char *version)
Set the version of the object to read.
struct opendal_error * opendal_operator_write_with(const struct opendal_operator *op, const char *path, const struct opendal_bytes *bytes, const struct opendal_write_options *opts)
Blocking write raw bytes to path with options.
struct opendal_error * opendal_operator_copy_with(const struct opendal_operator *op, const char *src, const char *dest, const struct opendal_copy_options *opts)
Blocking copy the object in path with options.
void opendal_error_free(struct opendal_error *ptr)
Frees the opendal_error, ok to call on NULL.
void opendal_operator_info_free(struct opendal_operator_info *ptr)
Free the heap-allocated opendal_operator_info.
char * opendal_metadata_content_disposition(const struct opendal_metadata *self)
Return the content disposition of the metadata.
struct opendal_read_options * opendal_read_options_new(void)
Construct a heap-allocated opendal_read_options with default values.
char * opendal_metadata_version(const struct opendal_metadata *self)
Return the version of the metadata.
void opendal_list_options_set_limit(struct opendal_list_options *opts, uintptr_t limit)
Set the limit option.
struct opendal_result_read opendal_operator_read_with(const struct opendal_operator *op, const char *path, const struct opendal_read_options *opts)
Blocking read the data from path with options.
char * opendal_metadata_etag(const struct opendal_metadata *self)
Return the etag of the metadata.
void opendal_read_options_set_if_none_match(struct opendal_read_options *opts, const char *if_none_match)
Set If-None-Match.
struct opendal_result_exists opendal_operator_exists(const struct opendal_operator *op, const char *path)
Check whether the path exists.
void opendal_write_options_set_content_disposition(struct opendal_write_options *opts, const char *content_disposition)
Set Content-Disposition.
void opendal_stat_options_set_if_match(struct opendal_stat_options *opts, const char *if_match)
Set If-Match.
struct opendal_error * opendal_operator_copy(const struct opendal_operator *op, const char *src, const char *dest)
Blocking copy the object in path.
struct opendal_error * opendal_logging_init(opendal_log_callback callback)
Installs one process-global native callback for the library's Rust log facade.
void opendal_string_free(char *ptr)
Frees a heap-allocated string returned by OpenDAL C APIs.
void opendal_write_options_set_chunk(struct opendal_write_options *opts, uintptr_t chunk)
Set chunk.
opendal_code
The error code for all opendal APIs in C binding.
Definition opendal.h:38
@ OPENDAL_CONDITION_NOT_MATCH
Definition opendal.h:82
@ OPENDAL_UNSUPPORTED
Definition opendal.h:46
@ OPENDAL_NOT_FOUND
Definition opendal.h:54
@ OPENDAL_IS_A_DIRECTORY
Definition opendal.h:62
@ OPENDAL_UNEXPECTED
Definition opendal.h:42
@ OPENDAL_PERMISSION_DENIED
Definition opendal.h:58
@ OPENDAL_ALREADY_EXISTS
Definition opendal.h:70
@ OPENDAL_IS_SAME_FILE
Definition opendal.h:78
@ OPENDAL_RANGE_NOT_SATISFIED
Definition opendal.h:86
@ OPENDAL_NOT_A_DIRECTORY
Definition opendal.h:66
@ OPENDAL_CONFLICT
Definition opendal.h:90
@ OPENDAL_RATE_LIMITED
Definition opendal.h:74
@ OPENDAL_CONFIG_INVALID
Definition opendal.h:50
struct opendal_result_writer_write opendal_writer_write(struct opendal_writer *self, const struct opendal_bytes *bytes)
Write data to the writer.
void opendal_list_options_set_deleted(struct opendal_list_options *opts, bool deleted)
Set the deleted option.
struct opendal_error * opendal_writer_close(struct opendal_writer *ptr)
Close the writer and make sure all data have been stored.
void opendal_operator_layers_free(struct opendal_operator_layers *ptr)
Free the allocated memory used by opendal_operator_layers.
struct opendal_write_options * opendal_write_options_new(void)
Construct a heap-allocated opendal_write_options with default values.
void opendal_stat_options_free(struct opendal_stat_options *opts)
Free the heap memory used by opendal_stat_options.
uint8_t opendal_metadata_is_current(const struct opendal_metadata *self)
Return whether this metadata is current.
struct opendal_reader_options * opendal_reader_options_new(void)
Construct a heap-allocated opendal_reader_options with default values.
void opendal_operator_layers_add_retry(struct opendal_operator_layers *self, bool jitter, float factor, uint64_t min_delay_ns, uint64_t max_delay_ns, uint64_t max_times)
Add a retry layer.
struct opendal_result_list opendal_operator_list_with(const struct opendal_operator *op, const char *path, const struct opendal_list_options *opts)
Blocking list the objects in path.
void opendal_operator_layers_add_timeout(struct opendal_operator_layers *self, uint64_t timeout_ns, uint64_t io_timeout_ns)
Add a timeout layer.
struct opendal_result_presign opendal_operator_presign_delete(const struct opendal_operator *op, const char *path, uint64_t expire_secs)
Presign a delete operation.
void opendal_lister_free(struct opendal_lister *ptr)
Free the heap-allocated metadata used by opendal_lister.
const struct opendal_metadata_user_metadata_pair * opendal_metadata_user_metadata_pairs(const struct opendal_metadata_user_metadata *metadata)
Return the key-value pairs of the user metadata.
struct opendal_result_presign opendal_operator_presign_read(const struct opendal_operator *op, const char *path, uint64_t expire_secs)
Presign a read operation.
void opendal_reader_options_set_if_unmodified_since(struct opendal_reader_options *opts, int64_t if_unmodified_since)
Set If-Unmodified-Since, in Unix milliseconds.
void opendal_read_options_set_gap(struct opendal_read_options *opts, uintptr_t gap)
Set gap size.
char * opendal_entry_name(const struct opendal_entry *self)
Name of entry.
void opendal_reader_free(struct opendal_reader *ptr)
Frees the heap memory used by the opendal_reader.
void opendal_read_options_set_concurrent(struct opendal_read_options *opts, uintptr_t concurrent)
Set concurrent read operations.
void opendal_copy_options_set_source_version(struct opendal_copy_options *opts, const char *source_version)
Set source version.
void opendal_delete_options_set_recursive(struct opendal_delete_options *opts, bool recursive)
Set the recursive option.
void opendal_operator_options_free(struct opendal_operator_options *ptr)
Free the allocated memory used by [opendal_operator_options].
bool opendal_metadata_is_file(const struct opendal_metadata *self)
Return whether the path represents a file.
void opendal_read_options_set_if_modified_since(struct opendal_read_options *opts, int64_t if_modified_since)
Set If-Modified-Since, in Unix milliseconds.
struct opendal_error * opendal_operator_delete_with(const struct opendal_operator *op, const char *path, const struct opendal_delete_options *opts)
Blocking delete the object in path with options.
void opendal_reader_options_set_if_modified_since(struct opendal_reader_options *opts, int64_t if_modified_since)
Set If-Modified-Since, in Unix milliseconds.
void opendal_read_options_set_if_unmodified_since(struct opendal_read_options *opts, int64_t if_unmodified_since)
Set If-Unmodified-Since, in Unix milliseconds.
struct opendal_result_stat opendal_operator_stat(const struct opendal_operator *op, const char *path)
Stat the path, return its metadata.
void opendal_reader_options_set_content_length_hint(struct opendal_reader_options *opts, uint64_t content_length_hint)
Set the known content length of the object.
void opendal_metadata_free(struct opendal_metadata *ptr)
Free the heap-allocated metadata used by opendal_metadata.
void opendal_write_options_set_content_type(struct opendal_write_options *opts, const char *content_type)
Set Content-Type.
void opendal_stat_options_set_if_unmodified_since(struct opendal_stat_options *opts, int64_t if_unmodified_since)
Set If-Unmodified-Since in milliseconds since the Unix epoch.
void opendal_copy_options_set_concurrent(struct opendal_copy_options *opts, uintptr_t concurrent)
Set concurrent.
void opendal_write_options_set_if_not_exists(struct opendal_write_options *opts, bool if_not_exists)
Set if_not_exists.
void opendal_write_options_set_content_encoding(struct opendal_write_options *opts, const char *content_encoding)
Set Content-Encoding.
void opendal_stat_options_set_override_content_type(struct opendal_stat_options *opts, const char *override_content_type)
Set the override Content-Type.
struct opendal_copy_options * opendal_copy_options_new(void)
Construct a heap-allocated opendal_copy_options with default values.
struct opendal_error * opendal_operator_rename(const struct opendal_operator *op, const char *src, const char *dest)
Blocking rename the object in path.
void opendal_read_options_set_override_content_disposition(struct opendal_read_options *opts, const char *override_content_disposition)
Set the override Content-Disposition (presign only).
struct opendal_result_operator_copier opendal_operator_copier(const struct opendal_operator *op, const char *src, const char *dest)
Blocking create a copier to copy a file from src to dest.
void opendal_presigned_request_free(struct opendal_presigned_request *req)
Free the presigned request.
void opendal_write_options_set_user_metadata(struct opendal_write_options *opts, const struct opendal_write_user_metadata_pair *pairs, uintptr_t len)
Set user metadata.
char * opendal_operator_info_get_root(const struct opendal_operator_info *self)
Return the nul-terminated operator's working root path.
struct opendal_result_read opendal_operator_read(const struct opendal_operator *op, const char *path)
Blocking read the data from path.
void opendal_write_options_set_append(struct opendal_write_options *opts, bool append)
Set append mode.
char * opendal_metadata_content_type(const struct opendal_metadata *self)
Return the content type of the metadata.
void opendal_writer_free(struct opendal_writer *ptr)
Frees the heap memory used by the opendal_writer.
void opendal_list_options_set_versions(struct opendal_list_options *opts, bool versions)
Set the versions option.
struct opendal_error * opendal_operator_check(const struct opendal_operator *op)
const char * opendal_presigned_request_method(const struct opendal_presigned_request *req)
char * opendal_entry_path(const struct opendal_entry *self)
Path of entry.
const char * opendal_presigned_request_uri(const struct opendal_presigned_request *req)
bool opendal_metadata_is_deleted(const struct opendal_metadata *self)
Return whether this metadata is deleted.
void opendal_read_options_set_chunk(struct opendal_read_options *opts, uintptr_t chunk)
Set chunk size.
void opendal_write_options_set_cache_control(struct opendal_write_options *opts, const char *cache_control)
Set Cache-Control.
void opendal_reader_options_set_if_match(struct opendal_reader_options *opts, const char *if_match)
Set If-Match.
void opendal_write_options_set_concurrent(struct opendal_write_options *opts, uintptr_t concurrent)
Set concurrent.
struct opendal_result_operator_writer opendal_operator_writer_with(const struct opendal_operator *op, const char *path, const struct opendal_write_options *opts)
Blocking create a writer for the specified path with options.
bool opendal_metadata_is_dir(const struct opendal_metadata *self)
Return whether the path represents a directory.
uint64_t opendal_metadata_content_length(const struct opendal_metadata *self)
Return the content_length of the metadata.
void(* opendal_log_callback)(int32_t level, const char *file, uint32_t line, const char *message)
Definition opendal.h:209
struct opendal_result_operator_reader opendal_operator_reader(const struct opendal_operator *op, const char *path)
Blocking read the data from path.
void opendal_reader_options_set_concurrent(struct opendal_reader_options *opts, uintptr_t concurrent)
Set concurrent read operations.
void opendal_read_options_set_override_content_type(struct opendal_read_options *opts, const char *override_content_type)
Set the override Content-Type (presign only).
void opendal_reader_options_free(struct opendal_reader_options *opts)
Free the heap memory used by opendal_reader_options.
struct opendal_result_is_exist opendal_operator_is_exist(const struct opendal_operator *op, const char *path)
Check whether the path exists.
void opendal_copy_options_set_chunk(struct opendal_copy_options *opts, uintptr_t chunk)
Set chunk.
void opendal_reader_options_set_if_none_match(struct opendal_reader_options *opts, const char *if_none_match)
Set If-None-Match.
void opendal_copy_options_free(struct opendal_copy_options *opts)
Free the heap memory used by opendal_copy_options.
void opendal_read_options_set_range(struct opendal_read_options *opts, uint64_t offset, uint64_t length)
Set the read range offset and length.
void opendal_read_options_free(struct opendal_read_options *opts)
Free the heap memory used by opendal_read_options.
struct opendal_metadata * opendal_entry_metadata(const struct opendal_entry *self)
Return the metadata associated with this entry.
void opendal_reader_options_set_gap(struct opendal_reader_options *opts, uintptr_t gap)
Set gap size.
void opendal_write_options_set_if_none_match(struct opendal_write_options *opts, const char *if_none_match)
Set If-None-Match.
void opendal_stat_options_set_override_cache_control(struct opendal_stat_options *opts, const char *override_cache_control)
Set the override Cache-Control.
const struct opendal_http_header_pair * opendal_presigned_request_headers(const struct opendal_presigned_request *req)
struct opendal_stat_options * opendal_stat_options_new(void)
Construct a heap-allocated opendal_stat_options with default values.
struct opendal_error * opendal_operator_delete(const struct opendal_operator *op, const char *path)
Blocking delete the object in path.
void opendal_bytes_free(struct opendal_bytes *ptr)
Frees the heap memory used by the opendal_bytes.
struct opendal_result_operator_writer opendal_operator_writer(const struct opendal_operator *op, const char *path)
Blocking create a writer for the specified path.
struct opendal_list_options * opendal_list_options_new(void)
Construct a heap-allocated opendal_list_options with default values.
struct opendal_presigned_request_inner opendal_presigned_request_inner
Definition opendal.h:93
struct opendal_result_presign opendal_operator_presign_write_with(const struct opendal_operator *op, const char *path, uint64_t expire_secs, const struct opendal_write_options *opts)
Presign a write operation with options.
void opendal_operator_options_set(struct opendal_operator_options *self, const char *key, const char *value)
Set a Key-Value pair inside opendal_operator_options.
void opendal_reader_options_set_prefetch(struct opendal_reader_options *opts, uintptr_t prefetch)
Set the number of prefetched byte ranges buffered during concurrent reads.
struct opendal_operator_options * opendal_operator_options_new(void)
Construct a heap-allocated opendal_operator_options.
struct opendal_result_write opendal_operator_write_with_metadata(const struct opendal_operator *op, const char *path, const struct opendal_bytes *bytes, const struct opendal_write_options *opts)
Blocking write raw bytes to path, returning the written object's metadata.
struct opendal_capability opendal_operator_info_get_capability(const struct opendal_operator_info *self)
Return the operator's capability.
void opendal_list_options_set_start_after(struct opendal_list_options *opts, const char *start_after)
Set the start_after option.
void opendal_read_options_set_override_cache_control(struct opendal_read_options *opts, const char *override_cache_control)
Set the override Cache-Control (presign only).
void opendal_entry_free(struct opendal_entry *ptr)
Frees the heap memory used by the opendal_list_entry.
int64_t opendal_metadata_last_modified_ms(const struct opendal_metadata *self)
Return the last_modified of the metadata, in milliseconds.
struct opendal_operator_info * opendal_operator_info_new(const struct opendal_operator *op)
Get information of underlying accessor.
struct opendal_metadata_user_metadata * opendal_metadata_get_user_metadata(const struct opendal_metadata *self)
Return the user metadata of the metadata.
opendal_bytes carries raw-bytes with its length
Definition opendal.h:106
uintptr_t capacity
Definition opendal.h:118
uintptr_t len
Definition opendal.h:114
uint8_t * data
Definition opendal.h:110
Capability is used to describe what operations are supported by current Operator.
Definition opendal.h:962
bool write_can_append
Definition opendal.h:1050
bool stat_with_version
Definition opendal.h:998
bool stat_with_if_modified_since
Definition opendal.h:978
bool write_can_multi
Definition opendal.h:1042
bool write_with_user_metadata
Definition opendal.h:1082
uintptr_t copy_multi_min_size
Definition opendal.h:1154
bool write_with_if_none_match
Definition opendal.h:1074
bool list_with_start_after
Definition opendal.h:1170
bool delete_
Definition opendal.h:1114
bool create_dir
Definition opendal.h:1110
bool list_with_versions
Definition opendal.h:1178
uintptr_t write_multi_min_size
Definition opendal.h:1098
bool shared
Definition opendal.h:1206
bool stat_with_if_match
Definition opendal.h:970
bool read_with_version
Definition opendal.h:1034
bool stat_with_if_unmodified_since
Definition opendal.h:982
bool read_with_override_content_type
Definition opendal.h:1022
bool write_with_if_not_exists
Definition opendal.h:1078
bool read_with_if_unmodified_since
Definition opendal.h:1030
bool write_with_content_encoding
Definition opendal.h:1062
bool write_with_if_match
Definition opendal.h:1070
bool stat_with_override_content_disposition
Definition opendal.h:990
bool presign_stat
Definition opendal.h:1194
bool read_with_if_match
Definition opendal.h:1006
bool delete_with_version
Definition opendal.h:1118
bool write
Definition opendal.h:1038
bool presign_read
Definition opendal.h:1190
bool presign_delete
Definition opendal.h:1202
bool delete_with_recursive
Definition opendal.h:1122
bool write_with_content_type
Definition opendal.h:1054
uintptr_t write_total_max_size
Definition opendal.h:1106
bool copy_with_source_version
Definition opendal.h:1138
bool presign
Definition opendal.h:1186
bool read
Definition opendal.h:1002
uintptr_t copy_multi_max_size
Definition opendal.h:1148
bool rename
Definition opendal.h:1158
bool list
Definition opendal.h:1162
bool write_with_cache_control
Definition opendal.h:1066
bool stat_with_if_none_match
Definition opendal.h:974
bool list_with_deleted
Definition opendal.h:1182
uintptr_t write_multi_max_size
Definition opendal.h:1090
bool copy_with_if_not_exists
Definition opendal.h:1130
bool write_can_empty
Definition opendal.h:1046
bool copy
Definition opendal.h:1126
bool stat
Definition opendal.h:966
bool read_with_override_content_disposition
Definition opendal.h:1018
bool read_with_if_none_match
Definition opendal.h:1010
bool stat_with_override_content_type
Definition opendal.h:994
bool read_with_if_modified_since
Definition opendal.h:1026
bool copy_can_multi
Definition opendal.h:1142
bool list_with_recursive
Definition opendal.h:1174
bool write_with_content_disposition
Definition opendal.h:1058
bool stat_with_override_cache_control
Definition opendal.h:986
bool copy_with_if_match
Definition opendal.h:1134
bool presign_write
Definition opendal.h:1198
bool list_with_limit
Definition opendal.h:1166
bool read_with_override_cache_control
Definition opendal.h:1014
opendal_copier completes a long-running copy operation to completion in a blocking manner....
Definition opendal.h:919
void * inner
Definition opendal.h:924
The options for copy operations.
Definition opendal.h:864
uint64_t source_content_length_hint
Definition opendal.h:884
bool if_not_exists
Definition opendal.h:868
bool has_chunk
Definition opendal.h:892
const char * if_match
Definition opendal.h:872
uintptr_t chunk
Definition opendal.h:896
bool has_source_content_length_hint
Definition opendal.h:880
uintptr_t concurrent
Definition opendal.h:888
const char * source_version
Definition opendal.h:876
The options for the delete operation.
Definition opendal.h:679
char * version
Definition opendal.h:683
bool recursive
Definition opendal.h:687
opendal_list_entry is the entry under a path, which is listed from the opendal_lister
Definition opendal.h:153
void * inner
Definition opendal.h:158
The opendal error type for C binding, containing an error code and corresponding error message.
Definition opendal.h:140
struct opendal_bytes message
Definition opendal.h:142
enum opendal_code code
Definition opendal.h:141
The key-value pair for the headers of the presigned request.
Definition opendal.h:1234
const char * key
Definition opendal.h:1238
const char * value
Definition opendal.h:1242
The options for the list operation.
Definition opendal.h:835
bool recursive
Definition opendal.h:839
bool versions
Definition opendal.h:851
char * start_after
Definition opendal.h:847
bool deleted
Definition opendal.h:855
uintptr_t limit
Definition opendal.h:843
BlockingLister is designed to list entries at given path in a blocking manner.
Definition opendal.h:188
void * inner
Definition opendal.h:193
A user metadata key-value pair.
Definition opendal.h:260
const char * key
Definition opendal.h:264
const char * value
Definition opendal.h:268
User metadata associated with a path.
Definition opendal.h:249
void * inner
Definition opendal.h:254
Carries all metadata associated with a path.
Definition opendal.h:238
void * inner
Definition opendal.h:243
Metadata for operator, users can use this metadata to get information of operator.
Definition opendal.h:950
void * inner
Definition opendal.h:955
The layers to apply when initializing an opendal_operator.
Definition opendal.h:219
void * inner
Definition opendal.h:224
The configuration for the initialization of opendal_operator.
Definition opendal.h:325
void * inner
Definition opendal.h:330
Used to access almost all OpenDAL APIs. It represents an operator that provides the unified interface...
Definition opendal.h:284
void * inner
Definition opendal.h:289
The underlying presigned request, which contains the HTTP method, URI, and headers....
Definition opendal.h:1213
struct opendal_presigned_request_inner * inner
Definition opendal.h:1214
The options for read operations.
Definition opendal.h:452
uint64_t length
Definition opendal.h:464
const char * if_match
Definition opendal.h:472
const char * override_content_type
Definition opendal.h:525
uintptr_t gap
Definition opendal.h:512
uintptr_t chunk
Definition opendal.h:504
const char * override_content_disposition
Definition opendal.h:533
int64_t if_modified_since
Definition opendal.h:484
bool has_if_unmodified_since
Definition opendal.h:488
bool has_if_modified_since
Definition opendal.h:480
bool has_content_length_hint
Definition opendal.h:516
const char * version
Definition opendal.h:468
const char * override_cache_control
Definition opendal.h:529
bool has_length
Definition opendal.h:460
int64_t if_unmodified_since
Definition opendal.h:492
bool has_chunk
Definition opendal.h:500
const char * if_none_match
Definition opendal.h:476
bool has_gap
Definition opendal.h:508
uint64_t content_length_hint
Definition opendal.h:521
uint64_t offset
Definition opendal.h:456
uintptr_t concurrent
Definition opendal.h:496
The options for creating a reader via opendal_operator_reader_with.
Definition opendal.h:573
bool has_if_modified_since
Definition opendal.h:589
bool has_if_unmodified_since
Definition opendal.h:597
int64_t if_unmodified_since
Definition opendal.h:601
bool has_gap
Definition opendal.h:626
const char * if_match
Definition opendal.h:581
uintptr_t chunk
Definition opendal.h:622
bool has_chunk
Definition opendal.h:618
uintptr_t gap
Definition opendal.h:630
const char * version
Definition opendal.h:577
uintptr_t prefetch
Definition opendal.h:634
uint64_t content_length_hint
Definition opendal.h:610
bool has_content_length_hint
Definition opendal.h:605
const char * if_none_match
Definition opendal.h:585
uintptr_t concurrent
Definition opendal.h:614
int64_t if_modified_since
Definition opendal.h:593
The result type returned by opendal's reader operation.
Definition opendal.h:542
void * inner
Definition opendal.h:547
The result type returned by opendal_copier_next().
Definition opendal.h:1306
struct opendal_error * error
Definition opendal.h:1318
bool has_next
Definition opendal.h:1314
uintptr_t size
Definition opendal.h:1310
The result type returned by opendal_operator_exists().
Definition opendal.h:721
bool exists
Definition opendal.h:725
struct opendal_error * error
Definition opendal.h:729
The result type returned by opendal_operator_is_exist().
Definition opendal.h:700
struct opendal_error * error
Definition opendal.h:708
bool is_exist
Definition opendal.h:704
The result type returned by opendal_operator_list().
Definition opendal.h:808
struct opendal_lister * lister
Definition opendal.h:812
struct opendal_error * error
Definition opendal.h:816
The result type returned by opendal_lister_next(). The list entry is the list result of the list oper...
Definition opendal.h:168
struct opendal_entry * entry
Definition opendal.h:172
struct opendal_error * error
Definition opendal.h:176
The result type returned by opendal_operator_copier().
Definition opendal.h:935
struct opendal_copier * copier
Definition opendal.h:939
struct opendal_error * error
Definition opendal.h:943
The result type returned by opendal_operator_new() operation.
Definition opendal.h:304
struct opendal_operator * op
Definition opendal.h:308
struct opendal_error * error
Definition opendal.h:312
The result type returned by opendal_operator_reader(). The result type for opendal_operator_reader(),...
Definition opendal.h:556
struct opendal_error * error
Definition opendal.h:564
struct opendal_reader * reader
Definition opendal.h:560
The result type returned by opendal_operator_writer(). The result type for opendal_operator_writer(),...
Definition opendal.h:655
struct opendal_writer * writer
Definition opendal.h:659
struct opendal_error * error
Definition opendal.h:663
The result of a presign operation.
Definition opendal.h:1220
struct opendal_presigned_request * req
Definition opendal.h:1224
struct opendal_error * error
Definition opendal.h:1228
The result type returned by opendal's read operation.
Definition opendal.h:435
struct opendal_bytes data
Definition opendal.h:439
struct opendal_error * error
Definition opendal.h:443
The is the result type returned by opendal_reader_read(). The result type contains a size field,...
Definition opendal.h:1250
struct opendal_error * error
Definition opendal.h:1258
uintptr_t size
Definition opendal.h:1254
The result type returned by opendal_reader_seek(). The result type contains a pos field,...
Definition opendal.h:1266
struct opendal_error * error
Definition opendal.h:1274
uint64_t pos
Definition opendal.h:1270
The result type returned by opendal_operator_stat().
Definition opendal.h:739
struct opendal_metadata * meta
Definition opendal.h:743
struct opendal_error * error
Definition opendal.h:747
The result type returned by the metadata-returning write operations.
Definition opendal.h:416
struct opendal_metadata * meta
Definition opendal.h:420
struct opendal_error * error
Definition opendal.h:424
The result type returned by opendal_writer_write(). The result type contains a size field,...
Definition opendal.h:1282
uintptr_t size
Definition opendal.h:1286
struct opendal_error * error
Definition opendal.h:1290
The options for stat operations.
Definition opendal.h:758
const char * override_content_type
Definition opendal.h:790
const char * if_match
Definition opendal.h:766
const char * version
Definition opendal.h:762
bool has_if_unmodified_since
Definition opendal.h:782
int64_t if_unmodified_since
Definition opendal.h:786
const char * if_none_match
Definition opendal.h:770
const char * override_cache_control
Definition opendal.h:794
bool has_if_modified_since
Definition opendal.h:774
int64_t if_modified_since
Definition opendal.h:778
const char * override_content_disposition
Definition opendal.h:798
The options for write operations.
Definition opendal.h:353
bool has_chunk
Definition opendal.h:393
const char * if_none_match
Definition opendal.h:381
const char * content_type
Definition opendal.h:365
const char * content_disposition
Definition opendal.h:369
uintptr_t chunk
Definition opendal.h:397
const struct opendal_write_user_metadata_pair * user_metadata
Definition opendal.h:401
const char * cache_control
Definition opendal.h:361
bool if_not_exists
Definition opendal.h:385
bool append
Definition opendal.h:357
uintptr_t user_metadata_len
Definition opendal.h:405
uintptr_t concurrent
Definition opendal.h:389
const char * if_match
Definition opendal.h:377
const char * content_encoding
Definition opendal.h:373
A key-value pair for write user metadata.
Definition opendal.h:336
const char * value
Definition opendal.h:344
const char * key
Definition opendal.h:340
The result type returned by opendal's writer operation.
Definition opendal.h:642
void * inner
Definition opendal.h:647