oss c sdk使用CURL进行底层的数据通信,对CURL熟悉的用户知道可以通过设置一些参数,实现控制诸如数据上传最低速度、连接超时时间、DNS缓存失效时间等,具体可以参考 http://curl.haxx.se/libcurl/c/curl_easy_setopt.html 。oss c sdk向用户提供了设置一些参数的接口。
用户可以通过oss_request_options_t结构体中aos_http_controller_t进行设置。首先,我们了解一下用到的数据结构:
typedef struct {
oss_config_t *config;
aos_http_controller_t *ctl;
aos_pool_t *pool;
} oss_request_options_t;
struct aos_http_request_options_s {
int speed_limit;
int speed_time;
int dns_cache_timeout;
int connect_timeout;
int64_t max_memory_size;
};
#define AOS_HTTP_BASE_CONTROLLER_DEFINE \
aos_http_request_options_t *options; \
aos_pool_t *pool; \
int64_t start_time; \
int64_t first_byte_time; \
int64_t finish_time; \
uint32_t owner:1; \
void *user_data;
struct aos_http_controller_s {
AOS_HTTP_BASE_CONTROLLER_DEFINE
};
接下来,我们以设置CURL中的CURLOPT_LOW_SPEED_LIMIT和CURLOPT_LOW_SPEED_TIME为例进行说明:
aos_pool_t *p;
oss_request_options_t *options;
aos_pool_create(&p, NULL);
options = oss_request_options_create(p);
options->ctl->options->speed_limit = 1024;
options->ctl->options->speed_limit = 15;
...
通过以上方式可以实现对CURL中一些参数的设置。
同样,大家可能注意是到
aos_http_request_options_s 数据结构中有一些和使用oss c sdk的性能参数相关的变量,以上传数据为例,用户在上传完数据后可以得到一系列的参数指标,比如开始上传数据的时间start_time,第一字节上传的时间first_byte_time,完成数据上传的时间finish_time。
通过以上说明,希望对数据上传和下载有一些需求的用户有所帮助
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。