28#define OPENDAL_SEEK_SET 0
30#define OPENDAL_SEEK_CUR 1
32#define OPENDAL_SEEK_END 2
967 uint64_t min_delay_ns,
968 uint64_t max_delay_ns,
976 uint64_t io_timeout_ns);
1852 uint64_t expire_secs);
1859 uint64_t expire_secs);
1866 uint64_t expire_secs);
1873 uint64_t expire_secs);
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.
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...
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_read_options_set_if_match(struct opendal_read_options *opts, const char *if_match)
Set If-Match.
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.
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.
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_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_lister_next opendal_lister_next(struct opendal_lister *self)
Return the next object to be listed.
void opendal_list_options_set_recursive(struct opendal_list_options *opts, bool recursive)
Set the recursive option.
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.
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.
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.
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.
uint8_t opendal_metadata_is_current(const struct opendal_metadata *self)
Return whether this metadata is current.
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_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_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_capability opendal_operator_info_get_native_capability(const struct opendal_operator_info *self)
Return the operator's native capability.
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_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_write_options_set_if_not_exists(struct opendal_write_options *opts, bool if_not_exists)
Set if_not_exists.
struct opendal_capability opendal_operator_info_get_full_capability(const struct opendal_operator_info *self)
Return the operator's full capability.
void opendal_write_options_set_content_encoding(struct opendal_write_options *opts, const char *content_encoding)
Set Content-Encoding.
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.
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_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_read_options_set_override_content_type(struct opendal_read_options *opts, const char *override_content_type)
Set the override Content-Type (presign only).
struct opendal_result_is_exist opendal_operator_is_exist(const struct opendal_operator *op, const char *path)
Check whether the path exists.
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_write_options_set_if_none_match(struct opendal_write_options *opts, const char *if_none_match)
Set If-None-Match.
const struct opendal_http_header_pair * opendal_presigned_request_headers(const struct opendal_presigned_request *req)
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
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.
struct opendal_operator_options * opendal_operator_options_new(void)
Construct a heap-allocated opendal_operator_options.
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:101
uintptr_t capacity
Definition opendal.h:113
uintptr_t len
Definition opendal.h:109
uint8_t * data
Definition opendal.h:105
Capability is used to describe what operations are supported by current Operator.
Definition opendal.h:668
bool write_can_append
Definition opendal.h:732
bool write_can_multi
Definition opendal.h:724
bool write_with_user_metadata
Definition opendal.h:764
bool write_with_if_none_match
Definition opendal.h:756
bool list_with_start_after
Definition opendal.h:816
bool delete_
Definition opendal.h:796
bool create_dir
Definition opendal.h:792
uintptr_t write_multi_min_size
Definition opendal.h:780
bool shared
Definition opendal.h:844
bool stat_with_if_match
Definition opendal.h:676
bool read_with_version
Definition opendal.h:716
bool read_with_override_content_type
Definition opendal.h:704
bool write_with_if_not_exists
Definition opendal.h:760
bool read_with_if_unmodified_since
Definition opendal.h:712
bool write_with_content_encoding
Definition opendal.h:744
bool write_with_if_match
Definition opendal.h:752
bool presign_stat
Definition opendal.h:832
bool read_with_if_match
Definition opendal.h:688
bool write
Definition opendal.h:720
bool presign_read
Definition opendal.h:828
bool presign_delete
Definition opendal.h:840
bool write_with_content_type
Definition opendal.h:736
uintptr_t write_total_max_size
Definition opendal.h:788
bool presign
Definition opendal.h:824
bool read
Definition opendal.h:684
bool rename
Definition opendal.h:804
bool list
Definition opendal.h:808
bool write_with_cache_control
Definition opendal.h:748
bool stat_with_if_none_match
Definition opendal.h:680
uintptr_t write_multi_max_size
Definition opendal.h:772
bool write_can_empty
Definition opendal.h:728
bool copy
Definition opendal.h:800
bool stat
Definition opendal.h:672
bool read_with_override_content_disposition
Definition opendal.h:700
bool read_with_if_none_match
Definition opendal.h:692
bool read_with_if_modified_since
Definition opendal.h:708
bool list_with_recursive
Definition opendal.h:820
bool write_with_content_disposition
Definition opendal.h:740
bool presign_write
Definition opendal.h:836
bool list_with_limit
Definition opendal.h:812
bool read_with_override_cache_control
Definition opendal.h:696
opendal_list_entry is the entry under a path, which is listed from the opendal_lister
Definition opendal.h:148
void * inner
Definition opendal.h:153
The opendal error type for C binding, containing an error code and corresponding error message.
Definition opendal.h:135
struct opendal_bytes message
Definition opendal.h:137
enum opendal_code code
Definition opendal.h:136
The options for the list operation.
Definition opendal.h:637
bool recursive
Definition opendal.h:641
char * start_after
Definition opendal.h:649
uintptr_t limit
Definition opendal.h:645
BlockingLister is designed to list entries at given path in a blocking manner.
Definition opendal.h:183
void * inner
Definition opendal.h:188
Metadata for operator, users can use this metadata to get information of operator.
Definition opendal.h:656
void * inner
Definition opendal.h:661
The layers to apply when initializing an opendal_operator.
Definition opendal.h:196
void * inner
Definition opendal.h:201
The configuration for the initialization of opendal_operator.
Definition opendal.h:302
void * inner
Definition opendal.h:307
Used to access almost all OpenDAL APIs. It represents an operator that provides the unified interface...
Definition opendal.h:261
void * inner
Definition opendal.h:266
The underlying presigned request, which contains the HTTP method, URI, and headers....
Definition opendal.h:851
struct opendal_presigned_request_inner * inner
Definition opendal.h:852
The options for read operations.
Definition opendal.h:410
uint64_t length
Definition opendal.h:422
const char * if_match
Definition opendal.h:430
const char * override_content_type
Definition opendal.h:474
uintptr_t gap
Definition opendal.h:470
uintptr_t chunk
Definition opendal.h:462
const char * override_content_disposition
Definition opendal.h:482
int64_t if_modified_since
Definition opendal.h:442
bool has_if_unmodified_since
Definition opendal.h:446
bool has_if_modified_since
Definition opendal.h:438
const char * version
Definition opendal.h:426
const char * override_cache_control
Definition opendal.h:478
bool has_length
Definition opendal.h:418
int64_t if_unmodified_since
Definition opendal.h:450
bool has_chunk
Definition opendal.h:458
const char * if_none_match
Definition opendal.h:434
bool has_gap
Definition opendal.h:466
uint64_t offset
Definition opendal.h:414
uintptr_t concurrent
Definition opendal.h:454
The result type returned by opendal's reader operation.
Definition opendal.h:491
void * inner
Definition opendal.h:496
The result type returned by opendal_operator_exists().
Definition opendal.h:576
bool exists
Definition opendal.h:580
struct opendal_error * error
Definition opendal.h:584
The result type returned by opendal_operator_is_exist().
Definition opendal.h:555
struct opendal_error * error
Definition opendal.h:563
bool is_exist
Definition opendal.h:559
The result type returned by opendal_operator_list().
Definition opendal.h:612
struct opendal_lister * lister
Definition opendal.h:616
struct opendal_error * error
Definition opendal.h:620
The result type returned by opendal_lister_next(). The list entry is the list result of the list oper...
Definition opendal.h:163
struct opendal_entry * entry
Definition opendal.h:167
struct opendal_error * error
Definition opendal.h:171
The result type returned by opendal_operator_new() operation.
Definition opendal.h:281
struct opendal_operator * op
Definition opendal.h:285
struct opendal_error * error
Definition opendal.h:289
The result type returned by opendal_operator_reader(). The result type for opendal_operator_reader(),...
Definition opendal.h:505
struct opendal_error * error
Definition opendal.h:513
struct opendal_reader * reader
Definition opendal.h:509
The result type returned by opendal_operator_writer(). The result type for opendal_operator_writer(),...
Definition opendal.h:534
struct opendal_writer * writer
Definition opendal.h:538
struct opendal_error * error
Definition opendal.h:542
The result of a presign operation.
Definition opendal.h:858
struct opendal_presigned_request * req
Definition opendal.h:862
struct opendal_error * error
Definition opendal.h:866
The result type returned by opendal's read operation.
Definition opendal.h:393
struct opendal_bytes data
Definition opendal.h:397
struct opendal_error * error
Definition opendal.h:401
The is the result type returned by opendal_reader_read(). The result type contains a size field,...
Definition opendal.h:888
struct opendal_error * error
Definition opendal.h:896
uintptr_t size
Definition opendal.h:892
The result type returned by opendal_reader_seek(). The result type contains a pos field,...
Definition opendal.h:904
struct opendal_error * error
Definition opendal.h:912
uint64_t pos
Definition opendal.h:908
The result type returned by opendal_operator_stat().
Definition opendal.h:594
struct opendal_metadata * meta
Definition opendal.h:598
struct opendal_error * error
Definition opendal.h:602
The result type returned by opendal_writer_write(). The result type contains a size field,...
Definition opendal.h:920
uintptr_t size
Definition opendal.h:924
struct opendal_error * error
Definition opendal.h:928
The options for write operations.
Definition opendal.h:330
bool has_chunk
Definition opendal.h:370
const char * if_none_match
Definition opendal.h:358
const char * content_type
Definition opendal.h:342
const char * content_disposition
Definition opendal.h:346
uintptr_t chunk
Definition opendal.h:374
const struct opendal_write_user_metadata_pair * user_metadata
Definition opendal.h:378
const char * cache_control
Definition opendal.h:338
bool if_not_exists
Definition opendal.h:362
bool append
Definition opendal.h:334
uintptr_t user_metadata_len
Definition opendal.h:382
uintptr_t concurrent
Definition opendal.h:366
const char * if_match
Definition opendal.h:354
const char * content_encoding
Definition opendal.h:350
The result type returned by opendal's writer operation.
Definition opendal.h:521
void * inner
Definition opendal.h:526