详情页标题前

腾讯云对象存储防盗链

详情页1

简介

文档提供关于存储桶 Referer 白名单或者黑名单的 API 概览以及 SDK 示例代码。

API 操作名 操作描述
PUT Bucket referer 设置存储桶 Referer 设置存储桶 Referer 白名单或者黑名单
GET Bucket referer 查询存储桶 Referer 查询存储桶 Referer 白名单或者黑名单

设置存储桶 Referer

功能说明

设置指定存储桶的 Referer 白名单或者黑名单(PUT Bucket referer)。

方法原型

cos_status_t *cos_put_bucket_referer(const cos_request_options_t *options,                                     const cos_string_t *bucket,                                     cos_referer_params_t *referer_params,                                     cos_table_t **resp_headers);

参数说明

参数名称 参数描述 类型
options COS 请求选项 Struct
bucket 存储桶名称,Bucket 的命名规则为 BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
referer_params referer配置参数 Struct
status 是否开启防盗链,枚举值:Enabled、Disabled String
referer_type 防盗链类型,枚举值:Black-List、White-List String
empty_refer_config 是否允许空 Referer 访问,枚举值:Allow、Deny,默认值为 Deny String
domain_list 生效域名列表, 支持多个域名且为前缀匹配, 支持带端口的域名和 IP, 支持通配符*,做二级域名或多级域名的通配 String
resp_headers 返回 HTTP 响应消息的头域 Struct

返回结果说明

返回结果 描述 类型
code 错误码 Int
error_code 错误码内容 String
error_msg 错误码描述 String
req_id 请求消息 ID String

示例

完整代码请参见 cos_demo.c 中的 test_referer() 函数。

#include "cos_http_io.h"#include "cos_api.h"#include "cos_log.h"
// endpoint 是 COS 访问域名信息,详情请参见 https://cloud.tencent.com/document/product/436/6224 文档static char TEST_COS_ENDPOINT[] = "cos.ap-guangzhou.myqcloud.com";// 开发者拥有的项目身份ID/密钥,可在 https://console.cloud.tencent.com/cam/capi 页面获取static char *TEST_ACCESS_KEY_ID; //your secret_idstatic char *TEST_ACCESS_KEY_SECRET; //your secret_key// 开发者访问 COS 服务时拥有的用户维度唯一资源标识,用以标识资源,可在 https://console.cloud.tencent.com/cam/capi 页面获取static char TEST_APPID[] = ""; //your appid//the cos bucket name, syntax: [bucket]-[appid], for example: mybucket-1253666666,可在 https://console.cloud.tencent.com/cos5/bucket 查看static char TEST_BUCKET_NAME[] = "";
void log_status(cos_status_t *s){ cos_warn_log("status->code: %d", s->code); if (s->error_code) cos_warn_log("status->error_code: %s", s->error_code); if (s->error_msg) cos_warn_log("status->error_msg: %s", s->error_msg); if (s->req_id) cos_warn_log("status->req_id: %s", s->req_id);}
void init_test_config(cos_config_t *config, int is_cname){ cos_str_set(&config->endpoint, TEST_COS_ENDPOINT); cos_str_set(&config->access_key_id, TEST_ACCESS_KEY_ID); cos_str_set(&config->access_key_secret, TEST_ACCESS_KEY_SECRET); cos_str_set(&config->appid, TEST_APPID); config->is_cname = is_cname;}
void init_test_request_options(cos_request_options_t *options, int is_cname){ options->config = cos_config_create(options->pool); init_test_config(options->config, is_cname); options->ctl = cos_http_controller_create(options->pool, 0);}
void test_put_referer(){ cos_pool_t *pool = NULL; int is_cname = 0; cos_status_t *status = NULL; cos_request_options_t *options = NULL; cos_table_t *resp_headers = NULL; cos_string_t bucket; cos_referer_params_t *params = NULL; cos_referer_domain_t *domain = NULL;
//创建内存池 cos_pool_create(&pool, NULL);
//初始化请求选项 options = cos_request_options_create(pool); init_test_request_options(options, is_cname); cos_str_set(&bucket, TEST_BUCKET_NAME);
// 替换为您的配置信息,可参见文档 https://cloud.tencent.com/document/product/436/32492 params = cos_create_referer_params(pool); cos_str_set(&params->status, "Enabled"); cos_str_set(&params->referer_type, "White-List"); cos_str_set(&params->empty_refer_config, "Allow"); domain = cos_create_referer_domain(pool); cos_str_set(&domain->domain, "www.qq.com"); cos_list_add_tail(&domain->node, &params->domain_list); domain = cos_create_referer_domain(pool); cos_str_set(&domain->domain, "*.tencent.com"); cos_list_add_tail(&domain->node, &params->domain_list);
// put referer status = cos_put_bucket_referer(options, &bucket, params, &resp_headers); log_status(status);
cos_pool_destroy(pool);}
int main(int argc, char *argv[]){ // 通过环境变量获取 SECRETID 和 SECRETKEY TEST_ACCESS_KEY_ID = getenv("COS_SECRETID"); TEST_ACCESS_KEY_SECRET = getenv("COS_SECRETKEY");
if (cos_http_io_initialize(NULL, 0) != COSE_OK) { exit(1); }
//set log level, default COS_LOG_WARN cos_log_set_level(COS_LOG_WARN);
//set log output, default stderr cos_log_set_output(NULL);
test_put_referer();
cos_http_io_deinitialize();
return 0;}

查询存储桶 Referer

功能说明

查询指定存储桶 Referer 白名单或者黑名单(GET Bucket referer)。

方法原型

cos_status_t *cos_get_bucket_referer(const cos_request_options_t *options,                                     const cos_string_t *bucket,                                     cos_referer_params_t *referer_params,                                     cos_table_t **resp_headers);

参数说明

参数名称 参数描述 类型
options COS 请求选项 Struct
bucket 存储桶名称,Bucket 的命名规则为 BucketName-APPID ,此处填写的存储桶名称必须为此格式 String
referer_params referer配置参数 Struct
status 是否开启防盗链,枚举值:Enabled、Disabled String
referer_type 防盗链类型,枚举值:Black-List、White-List String
empty_refer_config 是否允许空 Referer 访问,枚举值:Allow、Deny,默认值为 Deny String
domain_list 生效域名列表, 支持多个域名且为前缀匹配, 支持带端口的域名和 IP, 支持通配符*,做二级域名或多级域名的通配 String
resp_headers 返回 HTTP 响应消息的头域 Struct

返回结果说明

返回结果 描述 类型
code 错误码 Int
error_code 错误码内容 String
error_msg 错误码描述 String
req_id 请求消息 ID String

请求示例

完整代码请参见 cos_demo.c 中的 test_referer() 函数。

#include "cos_http_io.h"#include "cos_api.h"#include "cos_log.h"
// endpoint 是 COS 访问域名信息,详情请参见 https://cloud.tencent.com/document/product/436/6224 文档static char TEST_COS_ENDPOINT[] = "cos.ap-guangzhou.myqcloud.com";// 开发者拥有的项目身份ID/密钥,可在 https://console.cloud.tencent.com/cam/capi 页面获取static char *TEST_ACCESS_KEY_ID; //your secret_idstatic char *TEST_ACCESS_KEY_SECRET; //your secret_key// 开发者访问 COS 服务时拥有的用户维度唯一资源标识,用以标识资源,可在 https://console.cloud.tencent.com/cam/capi 页面获取static char TEST_APPID[] = ""; //your appid//the cos bucket name, syntax: [bucket]-[appid], for example: mybucket-1253666666,可在 https://console.cloud.tencent.com/cos5/bucket 查看static char TEST_BUCKET_NAME[] = "";
void log_status(cos_status_t *s){ cos_warn_log("status->code: %d", s->code); if (s->error_code) cos_warn_log("status->error_code: %s", s->error_code); if (s->error_msg) cos_warn_log("status->error_msg: %s", s->error_msg); if (s->req_id) cos_warn_log("status->req_id: %s", s->req_id);}
void init_test_config(cos_config_t *config, int is_cname){ cos_str_set(&config->endpoint, TEST_COS_ENDPOINT); cos_str_set(&config->access_key_id, TEST_ACCESS_KEY_ID); cos_str_set(&config->access_key_secret, TEST_ACCESS_KEY_SECRET); cos_str_set(&config->appid, TEST_APPID); config->is_cname = is_cname;}
void init_test_request_options(cos_request_options_t *options, int is_cname){ options->config = cos_config_create(options->pool); init_test_config(options->config, is_cname); options->ctl = cos_http_controller_create(options->pool, 0);}
static void log_get_referer(cos_referer_params_t *result){ int index = 0; cos_referer_domain_t *domain;
cos_warn_log("status: %s", result->status.data); cos_warn_log("referer_type: %s", result->referer_type.data); cos_warn_log("empty_refer_config: %s", result->empty_refer_config.data);
cos_list_for_each_entry(cos_referer_domain_t, domain, &result->domain_list, node) { cos_warn_log("domain index:%d", ++index); cos_warn_log("domain: %s", domain->domain.data); }}
void test_get_referer(){ cos_pool_t *pool = NULL; int is_cname = 0; cos_status_t *status = NULL; cos_request_options_t *options = NULL; cos_table_t *resp_headers = NULL; cos_string_t bucket; cos_referer_params_t *result = NULL;
//创建内存池 cos_pool_create(&pool, NULL);
//初始化请求选项 options = cos_request_options_create(pool); init_test_request_options(options, is_cname); cos_str_set(&bucket, TEST_BUCKET_NAME);
// get referer result = cos_create_referer_params(pool); status = cos_get_bucket_referer(options, &bucket, result, &resp_headers); log_status(status); if (status->code == 200) { log_get_referer(result); }
cos_pool_destroy(pool);}
int main(int argc, char *argv[]){ // 通过环境变量获取 SECRETID 和 SECRETKEY TEST_ACCESS_KEY_ID = getenv("COS_SECRETID"); TEST_ACCESS_KEY_SECRET = getenv("COS_SECRETKEY");
if (cos_http_io_initialize(NULL, 0) != COSE_OK) { exit(1); }
//set log level, default COS_LOG_WARN cos_log_set_level(COS_LOG_WARN);
//set log output, default stderr cos_log_set_output(NULL);
test_get_referer();
cos_http_io_deinitialize();
return 0;}



对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/145463.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云云直播HttpDNS 调度

    方案背景 云直播海外的推流和播放调度默认使用域名的 DNS 解析调度,它是一种最常见、最简单的接入方式。由于国内外的网络环境较为复杂,导致域名解析错误或流量跨网的问题普遍存在,云直播推荐您使用 HTTPDNS 方案来优化直播调度。运营商 LocalDNS 的出口根据权威 DNS 目标 IP 地址进行 NAT,或者将解析请求转发至其他 DNS 服务器,导致权威…

    2023年12月9日
  • 腾讯云容器服务云原生 etcd 服务等级协议同尘科技

    详细信息,请参见 云原生 etcd 服务等级协议。 容器服务官网1折活动,限时活动,即将结束,速速收藏同尘科技为腾讯云授权服务中心。购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云容器服务精简监控指标同尘科技

    注意TMP 已于2022年10月27日调整免费指标的免费存储时长为15天。存储时长超过15天的实例,将按照超出的天数,收取免费指标的存储费用。具体收费规则可参考 计费说明。本文档介绍如何精简 Prometheus 监控服务的采集指标,避免不必要的费用支出。 前提条件 在配置监控数据采集项前,您需要完成以下操作:已成功 创建 Prometheus 监控实例。已…

    2023年12月9日
  • 腾讯云TDSQL-C MySQL版产品概述

    TDSQL-C MySQL 版(TDSQL-C for MySQL)是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势,为用户提供具备高弹性、高性能、海量存储、安全可靠的数据库服务。TDSQL-C MySQL 版100%兼容 MySQL 5.7、8.0。实现超百万级 QPS 的高吞吐,最高 PB 级智能存储,保障数据安全可靠。…

    腾讯云 2023年12月9日
  • 腾讯云对象存储常见问题

    COSCLI 工具与 COSCMD 工具有什么区别? 1. COSCLI 工具使用 golang 构建,直接发布编译后的二进制包,用户在安装部署时无需预先安装任何依赖,开箱即用;COSCMD 工具使用 Python 构建,用户在安装时需先安装 Python 环境和依赖包。2. COSCLI 工具支持设置存储桶别名,可以使用一个短字符串来代替,方便用户使用;C…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。