123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 |
- #ifndef LIBOSS_DEFINE_H
- #define LIBOSS_DEFINE_H
- #include "aos_string.h"
- #include "aos_list.h"
- #include "aos_transport.h"
- #ifdef __cplusplus
- # define OSS_CPP_START extern "C" {
- # define OSS_CPP_END }
- #else
- # define OSS_CPP_START
- # define OSS_CPP_END
- #endif
- #define aos_xml_error_status_set(STATUS, RES) do { \
- aos_status_set(STATUS, RES, AOS_XML_PARSE_ERROR_CODE, NULL); \
- } while(0)
- #define aos_file_error_status_set(STATUS, RES) do { \
- aos_status_set(STATUS, RES, AOS_OPEN_FILE_ERROR_CODE, NULL); \
- } while(0)
- #define aos_inconsistent_error_status_set(STATUS, RES) do { \
- aos_status_set(STATUS, RES, AOS_INCONSISTENT_ERROR_CODE, NULL); \
- } while(0)
- extern const char OSS_CANNONICALIZED_HEADER_ACL[];
- extern const char OSS_CANNONICALIZED_HEADER_SOURCE[];
- extern const char OSS_CANNONICALIZED_HEADER_PREFIX[];
- extern const char OSS_CANNONICALIZED_HEADER_DATE[];
- extern const char OSS_CANNONICALIZED_HEADER_COPY_SOURCE[];
- extern const char OSS_CONTENT_MD5[];
- extern const char OSS_CONTENT_TYPE[];
- extern const char OSS_CONTENT_LENGTH[];
- extern const char OSS_DATE[];
- extern const char OSS_AUTHORIZATION[];
- extern const char OSS_ACCESSKEYID[];
- extern const char OSS_EXPECT[];
- extern const char OSS_EXPIRES[];
- extern const char OSS_SIGNATURE[];
- extern const char OSS_ACL[];
- extern const char OSS_PREFIX[];
- extern const char OSS_DELIMITER[];
- extern const char OSS_MARKER[];
- extern const char OSS_MAX_KEYS[];
- extern const char OSS_UPLOADS[];
- extern const char OSS_UPLOAD_ID[];
- extern const char OSS_MAX_PARTS[];
- extern const char OSS_KEY_MARKER[];
- extern const char OSS_UPLOAD_ID_MARKER[];
- extern const char OSS_MAX_UPLOADS[];
- extern const char OSS_PARTNUMBER[];
- extern const char OSS_PART_NUMBER_MARKER[];
- extern const char OSS_APPEND[];
- extern const char OSS_POSITION[];
- extern const char OSS_MULTIPART_CONTENT_TYPE[];
- extern const char OSS_COPY_SOURCE[];
- extern const char OSS_COPY_SOURCE_RANGE[];
- extern const char OSS_SECURITY_TOKEN[];
- extern const char OSS_STS_SECURITY_TOKEN[];
- extern const char OSS_OBJECT_TYPE[];
- extern const char OSS_NEXT_APPEND_POSITION[];
- extern const char OSS_HASH_CRC64_ECMA[];
- extern const char OSS_CALLBACK[];
- extern const char OSS_CALLBACK_VAR[];
- extern const char OSS_PROCESS[];
- extern const char OSS_LIFECYCLE[];
- extern const char OSS_DELETE[];
- extern const char OSS_YES[];
- extern const char OSS_OBJECT_TYPE_NORMAL[];
- extern const char OSS_OBJECT_TYPE_APPENDABLE[];
- extern const char OSS_LIVE_CHANNEL[];
- extern const char OSS_LIVE_CHANNEL_STATUS[];
- extern const char OSS_COMP[];
- extern const char OSS_LIVE_CHANNEL_STAT[];
- extern const char OSS_LIVE_CHANNEL_HISTORY[];
- extern const char OSS_LIVE_CHANNEL_VOD[];
- extern const char OSS_LIVE_CHANNEL_START_TIME[];
- extern const char OSS_LIVE_CHANNEL_END_TIME[];
- extern const char OSS_PLAY_LIST_NAME[];
- extern const char LIVE_CHANNEL_STATUS_DISABLED[];
- extern const char LIVE_CHANNEL_STATUS_ENABLED[];
- extern const char LIVE_CHANNEL_STATUS_IDLE[];
- extern const char LIVE_CHANNEL_STATUS_LIVE[];
- extern const char LIVE_CHANNEL_DEFAULT_TYPE[];
- extern const char LIVE_CHANNEL_DEFAULT_PLAYLIST[];
- extern const int LIVE_CHANNEL_DEFAULT_FRAG_DURATION;
- extern const int LIVE_CHANNEL_DEFAULT_FRAG_COUNT;
- extern const int OSS_MAX_PART_NUM;
- extern const int OSS_PER_RET_NUM;
- extern const int MAX_SUFFIX_LEN;
- typedef struct oss_lib_curl_initializer_s oss_lib_curl_initializer_t;
- /**
- * oss_acl is an ACL that can be specified when an object is created or
- * updated. Each canned ACL has a predefined value when expanded to a full
- * set of OSS ACL Grants.
- * Private canned ACL gives the owner FULL_CONTROL and no other permissions
- * are issued
- * Public Read canned ACL gives the owner FULL_CONTROL and all users Read
- * permission
- * Public Read Write canned ACL gives the owner FULL_CONTROL and all users
- * Read and Write permission
- **/
- typedef enum {
- OSS_ACL_PRIVATE = 0, /*< private */
- OSS_ACL_PUBLIC_READ = 1, /*< public read */
- OSS_ACL_PUBLIC_READ_WRITE = 2 /*< public read write */
- } oss_acl_e;
- typedef struct {
- aos_string_t endpoint;
- aos_string_t access_key_id;
- aos_string_t access_key_secret;
- aos_string_t sts_token;
- int is_cname;
- aos_string_t proxy_host;
- int proxy_port;
- aos_string_t proxy_user;
- aos_string_t proxy_passwd;
- } oss_config_t;
- typedef struct {
- oss_config_t *config;
- aos_http_controller_t *ctl; /*< aos http controller, more see aos_transport.h */
- aos_pool_t *pool;
- } oss_request_options_t;
- typedef struct {
- aos_list_t node;
- aos_string_t key;
- aos_string_t last_modified;
- aos_string_t etag;
- aos_string_t size;
- aos_string_t owner_id;
- aos_string_t owner_display_name;
- } oss_list_object_content_t;
- typedef struct {
- aos_list_t node;
- aos_string_t prefix;
- } oss_list_object_common_prefix_t;
- typedef struct {
- aos_list_t node;
- aos_string_t key;
- aos_string_t upload_id;
- aos_string_t initiated;
- } oss_list_multipart_upload_content_t;
- typedef struct {
- aos_list_t node;
- aos_string_t part_number;
- aos_string_t size;
- aos_string_t etag;
- aos_string_t last_modified;
- } oss_list_part_content_t;
- typedef struct {
- aos_list_t node;
- aos_string_t part_number;
- aos_string_t etag;
- } oss_complete_part_content_t;
- typedef struct {
- int part_num;
- char *etag;
- } oss_upload_part_t;
- typedef struct {
- aos_string_t prefix;
- aos_string_t marker;
- aos_string_t delimiter;
- int max_ret;
- int truncated;
- aos_string_t next_marker;
- aos_list_t object_list;
- aos_list_t common_prefix_list;
- } oss_list_object_params_t;
- typedef struct {
- aos_string_t part_number_marker;
- int max_ret;
- int truncated;
- aos_string_t next_part_number_marker;
- aos_list_t part_list;
- } oss_list_upload_part_params_t;
- typedef struct {
- aos_string_t prefix;
- aos_string_t key_marker;
- aos_string_t upload_id_marker;
- aos_string_t delimiter;
- int max_ret;
- int truncated;
- aos_string_t next_key_marker;
- aos_string_t next_upload_id_marker;
- aos_list_t upload_list;
- } oss_list_multipart_upload_params_t;
- typedef struct {
- aos_string_t source_bucket;
- aos_string_t source_object;
- aos_string_t dest_bucket;
- aos_string_t dest_object;
- aos_string_t upload_id;
- int part_num;
- int64_t range_start;
- int64_t range_end;
- } oss_upload_part_copy_params_t;
- typedef struct {
- aos_string_t filename; /**< file range read filename */
- int64_t file_pos; /**< file range read start position */
- int64_t file_last; /**< file range read last position */
- } oss_upload_file_t;
- typedef struct {
- aos_list_t node;
- aos_string_t id;
- aos_string_t prefix;
- aos_string_t status;
- int days;
- aos_string_t date;
- } oss_lifecycle_rule_content_t;
- typedef struct {
- aos_list_t node;
- aos_string_t key;
- } oss_object_key_t;
- typedef struct {
- char *suffix;
- char *type;
- } oss_content_type_t;
- typedef struct {
- int64_t part_size; // bytes, default 1MB
- int32_t thread_num; // default 1
- int enable_checkpoint; // default disable, false
- aos_string_t checkpoint_path; // dafault ./filepath.ucp or ./filepath.dcp
- } oss_resumable_clt_params_t;
- typedef struct {
- aos_string_t type;
- int32_t frag_duration;
- int32_t frag_count;
- aos_string_t play_list_name;
- }oss_live_channel_target_t;
- typedef struct {
- aos_string_t name;
- aos_string_t description;
- aos_string_t status;
- oss_live_channel_target_t target;
- } oss_live_channel_configuration_t;
- typedef struct {
- aos_list_t node;
- aos_string_t publish_url;
- } oss_live_channel_publish_url_t;
- typedef struct {
- aos_list_t node;
- aos_string_t play_url;
- } oss_live_channel_play_url_t;
- typedef struct {
- int32_t width;
- int32_t height;
- int32_t frame_rate;
- int32_t band_width;
- aos_string_t codec;
- } oss_video_stat_t;
- typedef struct {
- int32_t band_width;
- int32_t sample_rate;
- aos_string_t codec;
- } oss_audio_stat_t;
- typedef struct {
- aos_string_t pushflow_status;
- aos_string_t connected_time;
- aos_string_t remote_addr;
- oss_video_stat_t video_stat;
- oss_audio_stat_t audio_stat;
- } oss_live_channel_stat_t;
- typedef struct {
- aos_list_t node;
- aos_string_t name;
- aos_string_t description;
- aos_string_t status;
- aos_string_t last_modified;
- aos_list_t publish_url_list;
- aos_list_t play_url_list;
- } oss_live_channel_content_t;
- typedef struct {
- aos_string_t prefix;
- aos_string_t marker;
- int max_keys;
- int truncated;
- aos_string_t next_marker;
- aos_list_t live_channel_list;
- } oss_list_live_channel_params_t;
- typedef struct {
- aos_list_t node;
- aos_string_t start_time;
- aos_string_t end_time;
- aos_string_t remote_addr;
- } oss_live_record_content_t;
- #endif
|