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
21#ifndef _OPENDAL_H
22#define _OPENDAL_H
23
24#include <stdint.h>
25#include <stddef.h>
26#include <stdbool.h>
27
28#define OPENDAL_SEEK_SET 0
29
30#define OPENDAL_SEEK_CUR 1
31
32#define OPENDAL_SEEK_END 2
33
89
91
103typedef struct opendal_bytes {
107 uint8_t *data;
111 uintptr_t len;
115 uintptr_t capacity;
117
141
150typedef struct opendal_entry {
155 void *inner;
157
175
192
205
224
235
249
270
293
311
325
386
405
424
514
528
545
615
628
644
668
689
710
728
779
797
836
877
889
894typedef struct opendal_capability {
898 bool stat;
934 bool read;
970 bool write;
1058 bool copy;
1094 bool list;
1140
1148
1162
1176
1192
1208
1224
1225#ifdef __cplusplus
1226extern "C" {
1227#endif // __cplusplus
1228
1233
1244
1249
1254
1259 bool jitter,
1260 float factor,
1261 uint64_t min_delay_ns,
1262 uint64_t max_delay_ns,
1263 uint64_t max_times);
1264
1269 uint64_t timeout_ns,
1270 uint64_t io_timeout_ns);
1271
1276
1281
1285uint8_t opendal_metadata_mode(const struct opendal_metadata *self);
1286
1291
1296
1301
1308
1313
1320
1327
1334
1341
1348
1354char *opendal_metadata_etag(const struct opendal_metadata *self);
1355
1362
1369
1384
1389
1394
1399
1418
1459 const struct opendal_operator_options *options);
1460
1472 const struct opendal_operator_options *options,
1473 const struct opendal_operator_layers *layers);
1474
1522 const char *path,
1523 const struct opendal_bytes *bytes);
1524
1529 const char *path,
1530 const struct opendal_bytes *bytes,
1531 const struct opendal_write_options *opts);
1532
1566 const char *path,
1567 const struct opendal_bytes *bytes,
1568 const struct opendal_write_options *opts);
1569
1612 const char *path);
1613
1646 const char *path,
1647 const struct opendal_read_options *opts);
1648
1688 const char *path);
1689
1718 const char *path,
1719 const struct opendal_reader_options *opts);
1720
1760 const char *path);
1761
1766 const char *path,
1767 const struct opendal_write_options *opts);
1768
1811struct opendal_error *opendal_operator_delete(const struct opendal_operator *op, const char *path);
1812
1836 const char *path,
1837 const struct opendal_delete_options *opts);
1838
1879 const char *path);
1880
1921 const char *path);
1922
1962 const char *path);
1963
1989 const char *path,
1990 const struct opendal_stat_options *opts);
1991
2043 const char *path);
2044
2069 const char *path,
2070 const struct opendal_list_options *opts);
2071
2108 const char *path);
2109
2154 const char *src,
2155 const char *dest);
2156
2201 const char *src,
2202 const char *dest);
2203
2258 const char *src,
2259 const char *dest,
2260 const struct opendal_copy_options *opts);
2261
2263
2283
2288
2295
2302
2310
2315
2320 const char *path,
2321 uint64_t expire_secs);
2322
2327 const char *path,
2328 uint64_t expire_secs,
2329 const struct opendal_read_options *opts);
2330
2335 const char *path,
2336 uint64_t expire_secs);
2337
2342 const char *path,
2343 uint64_t expire_secs,
2344 const struct opendal_write_options *opts);
2345
2350 const char *path,
2351 uint64_t expire_secs);
2352
2357 const char *path,
2358 uint64_t expire_secs,
2359 const struct opendal_delete_options *opts);
2360
2365 const char *path,
2366 uint64_t expire_secs);
2367
2372 const char *path,
2373 uint64_t expire_secs,
2374 const struct opendal_stat_options *opts);
2375
2380
2385
2390
2395
2400
2406void opendal_string_free(char *ptr);
2407
2412
2421
2429
2437
2447 const char *start_after);
2448
2456
2464
2471
2480
2488
2496
2503
2508
2513
2518
2523 const char *cache_control);
2524
2529 const char *content_type);
2530
2535 const char *content_disposition);
2536
2541 const char *content_encoding);
2542
2547
2552 const char *if_none_match);
2553
2558 bool if_not_exists);
2559
2564
2569
2574 const struct opendal_write_user_metadata_pair *pairs,
2575 uintptr_t len);
2576
2581
2586
2591
2596
2601 const char *if_none_match);
2602
2607 int64_t if_modified_since);
2608
2613 int64_t if_unmodified_since);
2614
2619 const char *override_content_type);
2620
2625 const char *override_cache_control);
2626
2631 const char *override_content_disposition);
2632
2637
2642
2647 uint64_t offset,
2648 uint64_t length);
2649
2654
2659
2664
2669 const char *if_none_match);
2670
2675 int64_t if_modified_since);
2676
2681 int64_t if_unmodified_since);
2682
2687
2692
2697
2706 uint64_t content_length_hint);
2707
2712 const char *override_content_type);
2713
2718 const char *override_cache_control);
2719
2724 const char *override_content_disposition);
2725
2730
2735
2740
2745
2750 const char *if_none_match);
2751
2756 int64_t if_modified_since);
2757
2762 int64_t if_unmodified_since);
2763
2772 uint64_t content_length_hint);
2773
2778 uintptr_t concurrent);
2779
2784
2789
2794
2799
2804
2809
2814
2819 const char *source_version);
2820
2826
2831
2836
2846
2867 const char *key,
2868 const char *value);
2869
2874
2882char *opendal_entry_path(const struct opendal_entry *self);
2883
2893char *opendal_entry_name(const struct opendal_entry *self);
2894
2902
2907
2912 uint8_t *buf,
2913 uintptr_t len);
2914
2919 int64_t offset,
2920 int32_t whence);
2921
2926
2931 const struct opendal_bytes *bytes);
2932
2937
2952
2957
2958#ifdef __cplusplus
2959} // extern "C"
2960#endif // __cplusplus
2961
2962#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_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.
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.
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_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.
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:39
@ OPENDAL_CONDITION_NOT_MATCH
Definition opendal.h:83
@ OPENDAL_UNSUPPORTED
Definition opendal.h:47
@ OPENDAL_NOT_FOUND
Definition opendal.h:55
@ OPENDAL_IS_A_DIRECTORY
Definition opendal.h:63
@ OPENDAL_UNEXPECTED
Definition opendal.h:43
@ OPENDAL_PERMISSION_DENIED
Definition opendal.h:59
@ OPENDAL_ALREADY_EXISTS
Definition opendal.h:71
@ OPENDAL_IS_SAME_FILE
Definition opendal.h:79
@ OPENDAL_RANGE_NOT_SATISFIED
Definition opendal.h:87
@ OPENDAL_NOT_A_DIRECTORY
Definition opendal.h:67
@ OPENDAL_RATE_LIMITED
Definition opendal.h:75
@ OPENDAL_CONFIG_INVALID
Definition opendal.h:51
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 with options.
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).
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.
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:90
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).
struct opendal_result_list opendal_operator_list(const struct opendal_operator *op, const char *path)
Blocking list the objects in path.
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:103
uintptr_t capacity
Definition opendal.h:115
uintptr_t len
Definition opendal.h:111
uint8_t * data
Definition opendal.h:107
Capability is used to describe what operations are supported by current Operator.
Definition opendal.h:894
bool write_can_append
Definition opendal.h:982
bool stat_with_version
Definition opendal.h:930
bool stat_with_if_modified_since
Definition opendal.h:910
bool write_can_multi
Definition opendal.h:974
bool write_with_user_metadata
Definition opendal.h:1014
uintptr_t copy_multi_min_size
Definition opendal.h:1086
bool write_with_if_none_match
Definition opendal.h:1006
bool list_with_start_after
Definition opendal.h:1102
bool delete_
Definition opendal.h:1046
bool create_dir
Definition opendal.h:1042
bool list_with_versions
Definition opendal.h:1110
uintptr_t write_multi_min_size
Definition opendal.h:1030
bool shared
Definition opendal.h:1138
bool stat_with_if_match
Definition opendal.h:902
bool read_with_version
Definition opendal.h:966
bool stat_with_if_unmodified_since
Definition opendal.h:914
bool read_with_override_content_type
Definition opendal.h:954
bool write_with_if_not_exists
Definition opendal.h:1010
bool read_with_if_unmodified_since
Definition opendal.h:962
bool write_with_content_encoding
Definition opendal.h:994
bool write_with_if_match
Definition opendal.h:1002
bool stat_with_override_content_disposition
Definition opendal.h:922
bool presign_stat
Definition opendal.h:1126
bool read_with_if_match
Definition opendal.h:938
bool delete_with_version
Definition opendal.h:1050
bool write
Definition opendal.h:970
bool presign_read
Definition opendal.h:1122
bool presign_delete
Definition opendal.h:1134
bool delete_with_recursive
Definition opendal.h:1054
bool write_with_content_type
Definition opendal.h:986
uintptr_t write_total_max_size
Definition opendal.h:1038
bool copy_with_source_version
Definition opendal.h:1070
bool presign
Definition opendal.h:1118
bool read
Definition opendal.h:934
uintptr_t copy_multi_max_size
Definition opendal.h:1080
bool rename
Definition opendal.h:1090
bool list
Definition opendal.h:1094
bool write_with_cache_control
Definition opendal.h:998
bool stat_with_if_none_match
Definition opendal.h:906
bool list_with_deleted
Definition opendal.h:1114
uintptr_t write_multi_max_size
Definition opendal.h:1022
bool copy_with_if_not_exists
Definition opendal.h:1062
bool write_can_empty
Definition opendal.h:978
bool copy
Definition opendal.h:1058
bool stat
Definition opendal.h:898
bool read_with_override_content_disposition
Definition opendal.h:950
bool read_with_if_none_match
Definition opendal.h:942
bool stat_with_override_content_type
Definition opendal.h:926
bool read_with_if_modified_since
Definition opendal.h:958
bool copy_can_multi
Definition opendal.h:1074
bool list_with_recursive
Definition opendal.h:1106
bool write_with_content_disposition
Definition opendal.h:990
bool stat_with_override_cache_control
Definition opendal.h:918
bool copy_with_if_match
Definition opendal.h:1066
bool presign_write
Definition opendal.h:1130
bool list_with_limit
Definition opendal.h:1098
bool read_with_override_cache_control
Definition opendal.h:946
The options for copy operations.
Definition opendal.h:843
uint64_t source_content_length_hint
Definition opendal.h:863
bool if_not_exists
Definition opendal.h:847
bool has_chunk
Definition opendal.h:871
const char * if_match
Definition opendal.h:851
uintptr_t chunk
Definition opendal.h:875
bool has_source_content_length_hint
Definition opendal.h:859
uintptr_t concurrent
Definition opendal.h:867
const char * source_version
Definition opendal.h:855
The options for the delete operation.
Definition opendal.h:658
char * version
Definition opendal.h:662
bool recursive
Definition opendal.h:666
opendal_list_entry is the entry under a path, which is listed from the opendal_lister
Definition opendal.h:150
void * inner
Definition opendal.h:155
The opendal error type for C binding, containing an error code and corresponding error message.
Definition opendal.h:137
struct opendal_bytes message
Definition opendal.h:139
enum opendal_code code
Definition opendal.h:138
The key-value pair for the headers of the presigned request.
Definition opendal.h:1166
const char * key
Definition opendal.h:1170
const char * value
Definition opendal.h:1174
The options for the list operation.
Definition opendal.h:814
bool recursive
Definition opendal.h:818
bool versions
Definition opendal.h:830
char * start_after
Definition opendal.h:826
bool deleted
Definition opendal.h:834
uintptr_t limit
Definition opendal.h:822
BlockingLister is designed to list entries at given path in a blocking manner.
Definition opendal.h:185
void * inner
Definition opendal.h:190
A user metadata key-value pair.
Definition opendal.h:239
const char * key
Definition opendal.h:243
const char * value
Definition opendal.h:247
User metadata associated with a path.
Definition opendal.h:228
void * inner
Definition opendal.h:233
Carries all metadata associated with a path.
Definition opendal.h:217
void * inner
Definition opendal.h:222
Metadata for operator, users can use this metadata to get information of operator.
Definition opendal.h:882
void * inner
Definition opendal.h:887
The layers to apply when initializing an opendal_operator.
Definition opendal.h:198
void * inner
Definition opendal.h:203
The configuration for the initialization of opendal_operator.
Definition opendal.h:304
void * inner
Definition opendal.h:309
Used to access almost all OpenDAL APIs. It represents an operator that provides the unified interface...
Definition opendal.h:263
void * inner
Definition opendal.h:268
The underlying presigned request, which contains the HTTP method, URI, and headers....
Definition opendal.h:1145
struct opendal_presigned_request_inner * inner
Definition opendal.h:1146
The options for read operations.
Definition opendal.h:431
uint64_t length
Definition opendal.h:443
const char * if_match
Definition opendal.h:451
const char * override_content_type
Definition opendal.h:504
uintptr_t gap
Definition opendal.h:491
uintptr_t chunk
Definition opendal.h:483
const char * override_content_disposition
Definition opendal.h:512
int64_t if_modified_since
Definition opendal.h:463
bool has_if_unmodified_since
Definition opendal.h:467
bool has_if_modified_since
Definition opendal.h:459
bool has_content_length_hint
Definition opendal.h:495
const char * version
Definition opendal.h:447
const char * override_cache_control
Definition opendal.h:508
bool has_length
Definition opendal.h:439
int64_t if_unmodified_since
Definition opendal.h:471
bool has_chunk
Definition opendal.h:479
const char * if_none_match
Definition opendal.h:455
bool has_gap
Definition opendal.h:487
uint64_t content_length_hint
Definition opendal.h:500
uint64_t offset
Definition opendal.h:435
uintptr_t concurrent
Definition opendal.h:475
The options for creating a reader via opendal_operator_reader_with.
Definition opendal.h:552
bool has_if_modified_since
Definition opendal.h:568
bool has_if_unmodified_since
Definition opendal.h:576
int64_t if_unmodified_since
Definition opendal.h:580
bool has_gap
Definition opendal.h:605
const char * if_match
Definition opendal.h:560
uintptr_t chunk
Definition opendal.h:601
bool has_chunk
Definition opendal.h:597
uintptr_t gap
Definition opendal.h:609
const char * version
Definition opendal.h:556
uintptr_t prefetch
Definition opendal.h:613
uint64_t content_length_hint
Definition opendal.h:589
bool has_content_length_hint
Definition opendal.h:584
const char * if_none_match
Definition opendal.h:564
uintptr_t concurrent
Definition opendal.h:593
int64_t if_modified_since
Definition opendal.h:572
The result type returned by opendal's reader operation.
Definition opendal.h:521
void * inner
Definition opendal.h:526
The result type returned by opendal_operator_exists().
Definition opendal.h:700
bool exists
Definition opendal.h:704
struct opendal_error * error
Definition opendal.h:708
The result type returned by opendal_operator_is_exist().
Definition opendal.h:679
struct opendal_error * error
Definition opendal.h:687
bool is_exist
Definition opendal.h:683
The result type returned by opendal_operator_list().
Definition opendal.h:787
struct opendal_lister * lister
Definition opendal.h:791
struct opendal_error * error
Definition opendal.h:795
The result type returned by opendal_lister_next(). The list entry is the list result of the list oper...
Definition opendal.h:165
struct opendal_entry * entry
Definition opendal.h:169
struct opendal_error * error
Definition opendal.h:173
The result type returned by opendal_operator_new() operation.
Definition opendal.h:283
struct opendal_operator * op
Definition opendal.h:287
struct opendal_error * error
Definition opendal.h:291
The result type returned by opendal_operator_reader(). The result type for opendal_operator_reader(),...
Definition opendal.h:535
struct opendal_error * error
Definition opendal.h:543
struct opendal_reader * reader
Definition opendal.h:539
The result type returned by opendal_operator_writer(). The result type for opendal_operator_writer(),...
Definition opendal.h:634
struct opendal_writer * writer
Definition opendal.h:638
struct opendal_error * error
Definition opendal.h:642
The result of a presign operation.
Definition opendal.h:1152
struct opendal_presigned_request * req
Definition opendal.h:1156
struct opendal_error * error
Definition opendal.h:1160
The result type returned by opendal's read operation.
Definition opendal.h:414
struct opendal_bytes data
Definition opendal.h:418
struct opendal_error * error
Definition opendal.h:422
The is the result type returned by opendal_reader_read(). The result type contains a size field,...
Definition opendal.h:1182
struct opendal_error * error
Definition opendal.h:1190
uintptr_t size
Definition opendal.h:1186
The result type returned by opendal_reader_seek(). The result type contains a pos field,...
Definition opendal.h:1198
struct opendal_error * error
Definition opendal.h:1206
uint64_t pos
Definition opendal.h:1202
The result type returned by opendal_operator_stat().
Definition opendal.h:718
struct opendal_metadata * meta
Definition opendal.h:722
struct opendal_error * error
Definition opendal.h:726
The result type returned by the metadata-returning write operations.
Definition opendal.h:395
struct opendal_metadata * meta
Definition opendal.h:399
struct opendal_error * error
Definition opendal.h:403
The result type returned by opendal_writer_write(). The result type contains a size field,...
Definition opendal.h:1214
uintptr_t size
Definition opendal.h:1218
struct opendal_error * error
Definition opendal.h:1222
The options for stat operations.
Definition opendal.h:737
const char * override_content_type
Definition opendal.h:769
const char * if_match
Definition opendal.h:745
const char * version
Definition opendal.h:741
bool has_if_unmodified_since
Definition opendal.h:761
int64_t if_unmodified_since
Definition opendal.h:765
const char * if_none_match
Definition opendal.h:749
const char * override_cache_control
Definition opendal.h:773
bool has_if_modified_since
Definition opendal.h:753
int64_t if_modified_since
Definition opendal.h:757
const char * override_content_disposition
Definition opendal.h:777
The options for write operations.
Definition opendal.h:332
bool has_chunk
Definition opendal.h:372
const char * if_none_match
Definition opendal.h:360
const char * content_type
Definition opendal.h:344
const char * content_disposition
Definition opendal.h:348
uintptr_t chunk
Definition opendal.h:376
const struct opendal_write_user_metadata_pair * user_metadata
Definition opendal.h:380
const char * cache_control
Definition opendal.h:340
bool if_not_exists
Definition opendal.h:364
bool append
Definition opendal.h:336
uintptr_t user_metadata_len
Definition opendal.h:384
uintptr_t concurrent
Definition opendal.h:368
const char * if_match
Definition opendal.h:356
const char * content_encoding
Definition opendal.h:352
A key-value pair for write user metadata.
Definition opendal.h:315
const char * value
Definition opendal.h:323
const char * key
Definition opendal.h:319
The result type returned by opendal's writer operation.
Definition opendal.h:621
void * inner
Definition opendal.h:626