./configuremakemake install
./configuremakemake install
./configuremakemake install
--with-apr
选项,安装方式如下:./configure --with-apr=/your/apr/install/pathmakemake install
./configuremakemake install
cmake .makemake install
cos.ap-guangzhou.myqcloud.com
,全球加速域名的 endpoint 为 cos.accelerate.myqcloud.com
。endpoint可以加上http或者https,SDK 默认通过 http 访问 COS,如通过 https 访问广州地域的 endpoint 为 https://cos.ap-guangzhou.myqcloud.com
。int main(int argc, char *argv[]){/* 程序入口处调用 cos_http_io_initialize 方法,这个方法内部会做一些全局资源的初始化,涉及网络,内存等部分 */if (cos_http_io_initialize(NULL, 0) != COSE_OK) {exit(1);}/* 调用 COS SDK 的接口上传或下载文件 *//* ... 用户逻辑代码,这里省略 *//* 程序结束前,调用 cos_http_io_deinitialize 方法释放之前分配的全局资源 */cos_http_io_deinitialize();return 0;}
/* 等价于 apr_pool_t,用于内存管理的内存池,实现代码在 apr 库中 */cos_pool_t *pool;cos_request_options_t *options;/* 重新创建一个新的内存池,第二个参数是 NULL,表示没有继承自其它内存池 */cos_pool_create(&pool, NULL);/* 创建并初始化 options,这个参数内部主要包括 endpoint,access_key_id,acces_key_secret,is_cname, curl参数等全局配置信息* options的内存是由pool分配的,后续释放掉pool后,options的内存也相当于释放掉了,不再需要单独释放内存*/options = cos_request_options_create(pool);options->config = cos_config_create(options->pool);/* cos_str_set 是用 char* 类型的字符串初始化 cos_string_t 类型*/cos_str_set(&options->config->endpoint, "<用户的Endpoint>"); //Endpoint 依据用户所在地域的 COS 服务域名填写cos_str_set(&options->config->access_key_id, "<用户的SecretId>"); //用户注册 COS 服务后所获得的 SecretIdcos_str_set(&options->config->access_key_secret, "<用户的SecretKey>"); //用户注册 COS 服务后所获得的 SecretKeycos_str_set(&options->config->sts_token, "<用户的StsToken>"); //临时密钥的 Token,临时密钥生成和使用指引参见https://www.tencentcloud.com/document/product/436/14048cos_str_set(&options->config->appid, "<用户的AppId>"); //用户注册 COS 服务后所获得的 AppId/* 可以通过设置 sts_token 来使用临时密钥,当使用临时密钥时,access_key_id 和access_key_secret 均需要设置为对应临时密钥所配套的 SecretId 和 SecretKey *///cos_str_set(&options->config->sts_token, "MyTokenString");/* 是否使用了 CNAME */options->config->is_cname = 0;/* 使用自定义域名访问 COS *//*options->config->is_cname = 1;cos_str_set(&options->config->endpoint, "<自定义域名>");*//* 用于设置网络相关参数,例如超时时间等*/options->ctl = cos_http_controller_create(options->pool, 0);/* 用于设置上传请求是否自动添加 Content-MD5 头部,enable 为 COS_FALSE 时上传请求将不自动添加 Content-MD5 头部,enable 为 COS_TRUE 时上传请求将自动添加Content-MD5 头部,如果不设置此项则默认将添加 Content-MD5 头部 */cos_set_content_md5_enable(options->ctl, COS_FALSE);/* 用于设置请求路由地址和端口,一般情况下无需设置此参数,请求将按域名解析结果路由 *///cos_set_request_route(options->ctl, "192.168.12.34", 80);
cos_pool_t *p = NULL;int is_cname = 0;cos_status_t *s = NULL;cos_request_options_t *options = NULL;cos_acl_e cos_acl = COS_ACL_PRIVATE;cos_string_t bucket;cos_table_t *resp_headers = NULL;/* 重新创建一个新的内存池,第二个参数是 NULL,表示没有继承自其它内存池 */cos_pool_create(&p, NULL);/* 创建并初始化 options,这个参数内部主要包括endpoint,access_key_id,acces_key_secret,is_cname, curl参数等全局配置信息* options 的内存是由 pool 分配的,后续释放掉 pool 后,options的内存也相当于释放掉了,不再需要单独释放内存*/options = cos_request_options_create(p);options->config = cos_config_create(options->pool);init_test_config(options->config, is_cname);/* 设置 appid,endpoint,access_key_id,acces_key_secret,is_cname, curl参数等配置信息 */cos_str_set(&options->config->endpoint, TEST_COS_ENDPOINT);cos_str_set(&options->config->access_key_id, TEST_ACCESS_KEY_ID);cos_str_set(&options->config->access_key_secret, TEST_ACCESS_KEY_SECRET);cos_str_set(&options->config->appid, TEST_APPID);options->config->is_cname = is_cname;options->ctl = cos_http_controller_create(options->pool, 0);/* 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 */cos_str_set(&bucket, TEST_BUCKET_NAME);/* 调用 API 创建存储桶 */s = cos_create_bucket(options, &bucket, cos_acl, &resp_headers);if (cos_status_is_ok(s)) {printf("create bucket succeeded\\n");} else {printf("create bucket failed\\n");}//destroy memory poolcos_pool_destroy(p);
cos_pool_t *p = NULL;int is_cname = 0;cos_status_t *s = NULL;cos_request_options_t *options = NULL;cos_list_object_params_t *list_params = NULL;cos_string_t bucket;cos_table_t *resp_headers = NULL;/* 重新创建一个新的内存池,第二个参数是 NULL,表示没有继承自其它内存池 */cos_pool_create(&p, NULL);/* 创建并初始化 options,这个参数内部主要包括 endpoint,access_key_id,acces_key_secret,is_cname, curl参数等全局配置信息* options的内存是由pool分配的,后续释放掉 pool 后,options 的内存也相当于释放掉了,不再需要单独释放内存*/options = cos_request_options_create(p);options->config = cos_config_create(options->pool);init_test_config(options->config, is_cname);/* 设置 appid,endpoint,access_key_id,acces_key_secret,is_cname, curl 参数等配置信息 */cos_str_set(&options->config->endpoint, TEST_COS_ENDPOINT);cos_str_set(&options->config->access_key_id, TEST_ACCESS_KEY_ID);cos_str_set(&options->config->access_key_secret, TEST_ACCESS_KEY_SECRET);cos_str_set(&options->config->appid, TEST_APPID);options->config->is_cname = is_cname;options->ctl = cos_http_controller_create(options->pool, 0);/* 存储桶的命名格式为 BucketName-APPID,,此处填写的存储桶名称必须为此格式 */cos_str_set(&bucket, TEST_BUCKET_NAME);/* 调用 API 查询对象列表 */list_params = cos_create_list_object_params(p);cos_str_set(&list_params->encoding_type, "url");s = cos_list_object(options, &bucket, list_params, &resp_headers);if (cos_status_is_ok(s)) {printf("list object succeeded\\n");} else {printf("list object failed\\n");}//destroy memory poolcos_pool_destroy(p);
cos_pool_t *p = NULL;int is_cname = 0;cos_status_t *s = NULL;cos_request_options_t *options = NULL;cos_string_t bucket;cos_string_t object;cos_string_t file;cos_table_t *resp_headers = NULL;/* 重新创建一个新的内存池,第二个参数是 NULL,表示没有继承自其它内存池 */cos_pool_create(&p, NULL);/* 创建并初始化 options,这个参数内部主要包括 endpoint,access_key_id,acces_key_secret,is_cname, curl参数等全局配置信息* options的内存是由pool分配的,后续释放掉pool后,options的内存也相当于释放掉了,不再需要单独释放内存*/options = cos_request_options_create(p);options->config = cos_config_create(options->pool);init_test_config(options->config, is_cname);/* 设置 appid,endpoint,access_key_id,acces_key_secret,is_cname, curl 参数等配置信息 */cos_str_set(&options->config->endpoint, TEST_COS_ENDPOINT);cos_str_set(&options->config->access_key_id, TEST_ACCESS_KEY_ID);cos_str_set(&options->config->access_key_secret, TEST_ACCESS_KEY_SECRET);cos_str_set(&options->config->appid, TEST_APPID);options->config->is_cname = is_cname;options->ctl = cos_http_controller_create(options->pool, 0);/* 存储桶的命名格式为 BucketName-APPID,,此处填写的存储桶名称必须为此格式 */cos_str_set(&bucket, TEST_BUCKET_NAME);/* 调用 API 上传对象 */cos_str_set(&file, TEST_DOWNLOAD_NAME);cos_str_set(&object, TEST_OBJECT_NAME);s = cos_put_object_from_file(options, &bucket, &object, &file, NULL, &resp_headers);if (cos_status_is_ok(s)) {printf("put object succeeded\\n");} else {printf("put object failed\\n");}//destroy memory poolcos_pool_destroy(p);
cos_pool_t *p = NULL;int is_cname = 0;cos_status_t *s = NULL;cos_request_options_t *options = NULL;cos_string_t bucket;cos_string_t object;cos_string_t file;cos_table_t *resp_headers = NULL;/* 重新创建一个新的内存池,第二个参数是 NULL,表示没有继承自其它内存池 */cos_pool_create(&p, NULL);/* 创建并初始化 options,这个参数内部主要包括 endpoint,access_key_id,acces_key_secret,is_cname, curl参数等全局配置信息* options的内存是由pool分配的,后续释放掉pool后,options的内存也相当于释放掉了,不再需要单独释放内存*/options = cos_request_options_create(p);options->config = cos_config_create(options->pool);init_test_config(options->config, is_cname);/* 设置 appid,endpoint,access_key_id,acces_key_secret,is_cname, curl 参数等配置信息 */cos_str_set(&options->config->endpoint, TEST_COS_ENDPOINT);cos_str_set(&options->config->access_key_id, TEST_ACCESS_KEY_ID);cos_str_set(&options->config->access_key_secret, TEST_ACCESS_KEY_SECRET);cos_str_set(&options->config->appid, TEST_APPID);options->config->is_cname = is_cname;options->ctl = cos_http_controller_create(options->pool, 0);/* 存储桶的命名格式为 BucketName-APPID,,此处填写的存储桶名称必须为此格式 */cos_str_set(&bucket, TEST_BUCKET_NAME);/* 调用 API 下载对象 */cos_str_set(&file, TEST_DOWNLOAD_NAME);cos_str_set(&object, TEST_OBJECT_NAME);s = cos_get_object_to_file(options, &bucket, &object, NULL, NULL, &file, &resp_headers);if (cos_status_is_ok(s)) {printf("get object succeeded\\n");} else {printf("get object failed\\n");}//destroy memory poolcos_pool_destroy(p);
cos_pool_t *p = NULL;int is_cname = 0;cos_status_t *s = NULL;cos_request_options_t *options = NULL;cos_string_t bucket;cos_string_t object;cos_table_t *resp_headers = NULL;/* 重新创建一个新的内存池,第二个参数是 NULL,表示没有继承自其它内存池 */cos_pool_create(&p, NULL);/* 创建并初始化 options,这个参数内部主要包括 endpoint,access_key_id,acces_key_secret,is_cname, curl 参数等全局配置信息* options的内存是由pool分配的,后续释放掉 pool 后,options 的内存也相当于释放掉了,不再需要单独释放内存*/options = cos_request_options_create(p);options->config = cos_config_create(options->pool);init_test_config(options->config, is_cname);/* 设置 appid,endpoint,access_key_id,acces_key_secret,is_cname, curl参数等配置信息 */cos_str_set(&options->config->endpoint, TEST_COS_ENDPOINT);cos_str_set(&options->config->access_key_id, TEST_ACCESS_KEY_ID);cos_str_set(&options->config->access_key_secret, TEST_ACCESS_KEY_SECRET);cos_str_set(&options->config->appid, TEST_APPID);options->config->is_cname = is_cname;options->ctl = cos_http_controller_create(options->pool, 0);/* 存储桶的命名格式为 BucketName-APPID,,此处填写的存储桶名称必须为此格式 */cos_str_set(&bucket, TEST_BUCKET_NAME);/* 调用 API 删除对象 */cos_str_set(&object, TEST_OBJECT_NAME);s = cos_delete_object(options, &bucket, &object, &resp_headers);if (cos_status_is_ok(s)) {printf("delete object succeeded\\n");} else {printf("delete object failed\\n");}//destroy memory poolcos_pool_destroy(p);
本页内容是否解决了您的问题?