初始化
使用OSS C SDK时,需要初始化请求选项(oss_request_options_t),并指定Endpoint。
有关Endpoint的更多信息,请参见访问域名和数据中心和自定义访问域名。
使用OSS域名初始化请求选项
以下代码用于OSS域名初始化请求选项:
#include "oss_api.h"
#include "aos_http_io.h"
const char *endpoint = "<yourEndpoint>";
const char *access_key_id = "<yourAccessKeyId>";
const char *access_key_secret = "<yourAccessKeySecret>";
void init_options(oss_request_options_t *options)
{
options->config = oss_config_create(options->pool);
/* 用char*类型的字符串初始化aos_string_t类型。*/
aos_str_set(&options->config->endpoint, endpoint);
aos_str_set(&options->config->access_key_id, access_key_id);
aos_str_set(&options->config->access_key_secret, access_key_secret);
/* 是否使用了CNAME。0表示不使用。*/
options->config->is_cname = 0;
/* 用于设置网络相关参数,其中这个函数的第二个参数表示ctl的归属,默认为0。*/
options->ctl = aos_http_controller_create(options->pool, 0);
}
int main() {
aos_pool_t *p;
oss_request_options_t *options;
/* 全局变量初始化,程序启动时,最先运行。*/
if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
return -1;
}
/* 初始化内存池和options。*/
aos_pool_create(&p, NULL);
options = oss_request_options_create(p);
init_options(options);
/* 逻辑代码,此处省略。*/
/* 释放内存池,相当于释放了请求过程中各资源分配的内存。*/
aos_pool_destroy(p);
/* 释放之前分配的全局资源。*/
aos_http_io_deinitialize();
return 0;
}
说明 关于请求选项的设置请详见OSS C SDK如何设置通信时和CURL相关的一些参数。
使用自定义域名初始化请求选项
以下代码用于自定义域名初始化请求选项:
#include "oss_api.h"
#include "aos_http_io.h"
const char *endpoint = "<yourCustomEndpoint>";
const char *access_key_id = "<yourAccessKeyId>";
const char *access_key_secret = "<yourAccessKeySecret>";
void init_options(oss_request_options_t *options) {
options->config = oss_config_create(options->pool);
/* 用char*类型的字符串初始化aos_string_t类型。*/
aos_str_set(&options->config->endpoint, endpoint);
aos_str_set(&options->config->access_key_id, access_key_id);
aos_str_set(&options->config->access_key_secret, access_key_secret);
/* 开启CNAME,将自定义域名绑定到存储空间上。*/
options->config->is_cname = 1;
options->ctl = aos_http_controller_create(options->pool, 0);
}
int main() {
aos_pool_t *p;
oss_request_options_t *options;
/* 全局变量初始化,程序启动时,最先运行。*/
if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
return -1;
}
/* 初始化内存池和options。*/
aos_pool_create(&p, NULL);
options = oss_request_options_create(p);
init_options(options);
/* 逻辑代码,此处省略。*/
/* 释放内存池,相当于释放了请求过程中各资源分配的内存。*/
aos_pool_destroy(p);
/* 释放之前分配的全局资源。*/
aos_http_io_deinitialize();
return 0;
}
使用STS初始化请求选项
以下代码用于STS初始化请求选项:
#include "oss_api.h"
#include "aos_http_io.h"
const char *endpoint = "<yourEndpoint>";
const char *access_key_id = "<yourAccessKeyId>";
const char *access_key_secret = "<yourAccessKeySecret>";
const char *sts_token = "<yourSecurityToken>";
void init_options(oss_request_options_t *options)
{
options->config = oss_config_create(options->pool);
/* 用char*类型的字符串初始化aos_string_t类型。*/
aos_str_set(&options->config->endpoint, endpoint);
aos_str_set(&options->config->access_key_id, access_key_id);
aos_str_set(&options->config->access_key_secret, access_key_secret);
/* 设置STS。*/
aos_str_set(&options->config->sts_token, sts_token);
/* 是否使用了CNAME。0表示不使用。*/
options->config->is_cname = 0;
options->ctl = aos_http_controller_create(options->pool, 0);
}
int main() {
aos_pool_t *p;
oss_request_options_t *options;
/* 全局变量初始化,程序启动时,最先运行。*/
if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
return -1;
}
/* 初始化内存池和options。*/
aos_pool_create(&p, NULL);
options = oss_request_options_create(p);
init_options(options);
/* 逻辑代码,此处省略。*/
/* 释放内存池,相当于释放了请求过程中各资源分配的内存。*/
aos_pool_destroy(p);
/* 释放之前分配的全局资源。*/
aos_http_io_deinitialize();
return 0;
}
设置超时时间
以下代码用于设置超时时间:
#include "oss_api.h"
#include "aos_http_io.h"
const char *endpoint = "<yourEndpoint>";
const char *access_key_id = "<yourAccessKeyId>";
const char *access_key_secret = "<yourAccessKeySecret>";
void init_options(oss_request_options_t *options)
{
options->config = oss_config_create(options->pool);
/* 用char*类型的字符串初始化aos_string_t类型。*/
aos_str_set(&options->config->endpoint, endpoint);
aos_str_set(&options->config->access_key_id, access_key_id);
aos_str_set(&options->config->access_key_secret, access_key_secret);
/* 是否使用了CNAME。0表示不使用。*/
options->config->is_cname = 0;
/* 用于设置网络相关参数,其中这个函数的第二个参数表示ctl的归属,默认为0。*/
options->ctl = aos_http_controller_create(options->pool, 0);
/* 设置链接超时,默认是10秒。*/
options->ctl->options->connect_timeout = 10;
/* 设置DNS超时,默认是60秒。*/
options->ctl->options->dns_cache_timeout = 60;
/*
设置请求超时:
通过设置speed_limit的值控制能容忍的最小速率,默认是1024,即1KB/s。
通过设置speed_time的值控制能容忍的最长时间,默认是15秒。
表示如果传输速率连续15秒小于1KB/s,则超时。
*/
options->ctl->options->speed_limit = 1024;
options->ctl->options->speed_time = 15;
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论