开发者社区> 问答> 正文

oss c sdk如何设置通信时和CURL相关的一些参数


     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。


通过以上说明,希望对数据上传和下载有一些需求的用户有所帮助

展开
收起
yjseu 2015-10-28 22:02:52 12134 0
3 条回答
写回答
取消 提交回答
  • 好像这个月发布最新版的vs2017了
    2017-03-17 12:05:40
    赞同 展开评论 打赏
  • Reoss c sdk如何设置通信时和CURL相关的一些参数
    虽然已经过去很久了,还是回一下楼上的问题,方便以后的同学参考。
    这个问题应该是由于依赖库引起的问题,oss sdk里面的libarp等几个库的debug版本需要有vc9运行库的debug版本支持,如果没有安装vs2008只单独安装微软的vc9运行库,系统里面只会有vc9运行库的release版而没有debug版
    如何分析问题:
    1.可以用dependency walker参考dll的依赖关系
    2.可以在windows系统日志中参考应用程序的错误日志,也能看到相应的库错误信息
    2017-03-17 10:51:46
    赞同 展开评论 打赏
  • Reoss c sdk如何设置通信时和CURL相关的一些参数
    aliyun-oss-c-sdk-sample  这里工程,在使用debug调试时出现无法启动的提示(使用的库是\third_party\lib\Debug\ 目录下的),release时没有问题,请问是哪里没有配置好?
    2016-12-12 14:06:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载