18#if defined(__cplusplus)
22#include <daos_event.h>
26#define DS3_MAX_BUCKET_NAME DAOS_PROP_MAX_LABEL_BUF_LEN
29#define DS3_MAX_KEY (DFS_MAX_PATH - 8)
32#define DS3_MAX_KEY_BUFF DFS_MAX_PATH
35#define DS3_MAX_USER_NAME DFS_MAX_NAME
38#define DS3_MAX_UPLOAD_ID 35
41#define DS3_MAX_ENCODED_LEN DFS_MAX_XATTR_LEN
44#define DS3_LATEST_INSTANCE "latest"
374 char *marker,
bool list_versions,
bool *is_truncated,
ds3_bucket_t *ds3b);
527 char *marker,
bool *is_truncated,
ds3_t *ds3);
590 const char *upload_id,
ds3_t *ds3);
605ds3_part_open(
const char *bucket_name,
const char *upload_id, uint64_t part_num,
bool truncate,
671#if defined(__cplusplus)
int ds3_bucket_set_info(struct ds3_bucket_info *info, ds3_bucket_t *ds3b, daos_event_t *ev)
int ds3_obj_open(const char *key, ds3_obj_t **ds3o, ds3_bucket_t *ds3b)
int ds3_bucket_open(const char *name, ds3_bucket_t **ds3b, ds3_t *ds3, daos_event_t *ev)
int ds3_bucket_close(ds3_bucket_t *ds3b, daos_event_t *ev)
int ds3_upload_get_info(struct ds3_multipart_upload_info *info, const char *bucket_name, const char *upload_id, ds3_t *ds3)
int ds3_user_get_by_email(const char *email, struct ds3_user_info *info, ds3_t *ds3, daos_event_t *ev)
int ds3_user_get_by_key(const char *key, struct ds3_user_info *info, ds3_t *ds3, daos_event_t *ev)
int ds3_bucket_create(const char *name, struct ds3_bucket_info *info, dfs_attr_t *attr, ds3_t *ds3, daos_event_t *ev)
int ds3_part_open(const char *bucket_name, const char *upload_id, uint64_t part_num, bool truncate, ds3_part_t **ds3p, ds3_t *ds3)
int ds3_part_write(void *buf, daos_off_t off, daos_size_t *size, ds3_part_t *ds3p, ds3_t *ds3, daos_event_t *ev)
int ds3_user_set(const char *name, struct ds3_user_info *info, struct ds3_user_info *old_info, ds3_t *ds3, daos_event_t *ev)
int ds3_part_close(ds3_part_t *ds3p)
int ds3_bucket_list_multipart(const char *bucket_name, uint32_t *nmp, struct ds3_multipart_upload_info *mps, uint32_t *ncp, struct ds3_common_prefix_info *cps, const char *prefix, const char *delim, char *marker, bool *is_truncated, ds3_t *ds3)
int ds3_obj_get_info(struct ds3_object_info *info, ds3_bucket_t *ds3b, ds3_obj_t *ds3o)
int ds3_upload_init(struct ds3_multipart_upload_info *info, const char *bucket_name, ds3_t *ds3)
int ds3_disconnect(ds3_t *ds3, daos_event_t *ev)
#define DS3_MAX_BUCKET_NAME
int ds3_bucket_destroy(const char *name, bool force, ds3_t *ds3, daos_event_t *ev)
int ds3_obj_read(void *buf, daos_off_t off, daos_size_t *size, ds3_bucket_t *ds3b, ds3_obj_t *ds3o, daos_event_t *ev)
int ds3_obj_mark_latest(const char *key, ds3_bucket_t *ds3b)
int ds3_obj_close(ds3_obj_t *ds3o)
struct ds3_part ds3_part_t
int ds3_obj_write(void *buf, daos_off_t off, daos_size_t *size, ds3_bucket_t *ds3b, ds3_obj_t *ds3o, daos_event_t *ev)
int ds3_upload_remove(const char *bucket_name, const char *upload_id, ds3_t *ds3)
int ds3_obj_create(const char *key, ds3_obj_t **ds3o, ds3_bucket_t *ds3b)
int ds3_upload_list_parts(const char *bucket_name, const char *upload_id, uint32_t *npart, struct ds3_multipart_part_info *parts, uint32_t *marker, bool *is_truncated, ds3_t *ds3)
int ds3_connect(const char *pool, const char *sys, ds3_t **ds3, daos_event_t *ev)
int ds3_obj_set_info(struct ds3_object_info *info, ds3_bucket_t *ds3b, ds3_obj_t *ds3o)
int ds3_bucket_get_info(struct ds3_bucket_info *info, ds3_bucket_t *ds3b, daos_event_t *ev)
int ds3_user_get(const char *name, struct ds3_user_info *info, ds3_t *ds3, daos_event_t *ev)
int ds3_bucket_list_obj(uint32_t *nobj, struct ds3_object_info *objs, uint32_t *ncp, struct ds3_common_prefix_info *cps, const char *prefix, const char *delim, char *marker, bool list_versions, bool *is_truncated, ds3_bucket_t *ds3b)
struct ds3_bucket ds3_bucket_t
int ds3_bucket_list(daos_size_t *nbuck, struct ds3_bucket_info *buf, char *marker, bool *is_truncated, ds3_t *ds3, daos_event_t *ev)
int ds3_part_read(void *buf, daos_off_t off, daos_size_t *size, ds3_part_t *ds3p, ds3_t *ds3, daos_event_t *ev)
int ds3_user_remove(const char *name, struct ds3_user_info *info, ds3_t *ds3, daos_event_t *ev)
int ds3_part_set_info(struct ds3_multipart_part_info *info, ds3_part_t *ds3p, ds3_t *ds3, daos_event_t *ev)
int ds3_obj_destroy(const char *key, ds3_bucket_t *ds3b)
#define DS3_MAX_UPLOAD_ID
char name[DS3_MAX_BUCKET_NAME]
char prefix[DS3_MAX_KEY_BUFF]
char key[DS3_MAX_KEY_BUFF]
char upload_id[DS3_MAX_UPLOAD_ID]
char key[DS3_MAX_KEY_BUFF]
const size_t access_ids_nr