tencent cloud

文档反馈

跨域访问

最后更新时间:2024-01-04 18:00:58

    简介

    本文档提供关于跨域访问的 API 概览以及 SDK 示例代码。
    API
    操作名
    操作描述
    设置跨域配置
    设置存储桶的跨域名访问权限
    查询跨域配置
    查询存储桶的跨域名访问配置信息
    删除跨域配置
    删除存储桶的跨域名访问配置信息

    设置跨域配置

    功能说明

    设置指定存储桶的跨域名访问配置信息(PUT Bucket cors)。

    方法原型

    CosResult PutBucketCORS(const PutBucketCORSReq& request, PutBucketCORSResp* response);

    请求示例

    qcloud_cos::CosConfig config("./config.json");
    qcloud_cos::CosAPI cos(config);
    std::string bucket_name = "examplebucket-1250000000";
    qcloud_cos::PutBucketCORSReq req(bucket_name);
    qcloud_cos::PutBucketCORSResp resp;
    
    // 设置跨域请求内容
    qcloud_cos::CORSRule rule;
    rule.m_id = "123"; // 设置跨域配置 ID
    rule.m_allowed_headers.push_back("x-cos-meta-test"); // 设置跨域允许的 HTTP 请求头部
    rule.m_allowed_origins.push_back("http://www.qq.com"); // 设置跨域允许的来源域名
    rule.m_allowed_methods.push_back("PUT"); // 设置跨域允许的 HTTP 方法
    rule.m_allowed_methods.push_back("GET");
    rule.m_max_age_secs = "600"; // 设置有效配置的时间
    rule.m_expose_headers.push_back("x-cos-expose"); // 允许浏览器获取的 CORS 请求响应中的头部
    req.AddRule(rule);
    
    qcloud_cos::CosResult result = cos.PutBucketCORS(req, &resp);
    if (result.IsSucc()) {
    // 请求成功
    } else {
    // 请求失败,可以调用 CosResult 的成员函数输出错误信息,如 requestID 等
    }
    

    参数说明

    参数
    参数描述
    类型
    是否必填
    req
    PutBucketCORS 操作的请求
    PutBucketCORSReq
    resp
    PutBucketCORS 操作的响应
    PutBucketCORSResp
    PutBucketCORSReq 提供以下成员函数:
    // 添加跨域规则
    void AddRule(const CORSRule& rule);
    // 添加跨域规则
    void SetRules(const std::vector<CORSRule>& rules)
    该请求涉及到的类定义如下:
    
    struct CORSRule {
    std::string m_id;
    std::string m_max_age_secs;
    std::vector<std::string> m_allowed_headers;
    std::vector<std::string> m_allowed_methods;
    std::vector<std::string> m_allowed_origins;
    std::vector<std::string> m_expose_headers;
    };
    

    查询跨域配置

    功能说明

    查询指定存储桶的跨域名访问配置信息(GET Bucket cors)。

    方法原型

    CosResult CosAPI::GetBucketCORS(const GetBucketCORSReq& request, GetBucketCORSResp* response);

    请求示例

    qcloud_cos::CosConfig config("./config.json");
    qcloud_cos::CosAPI cos(config);
    std::string bucket_name = "examplebucket-1250000000";
    qcloud_cos::GetBucketCORSReq req(bucket_name);
    qcloud_cos::GetBucketCORSResp resp;
    
    qcloud_cos::CosResult result = cos.GetBucketCORS(req, &resp);
    if (result.IsSucc()) {
    // 请求成功,调用 resp 方法获取跨域规则
    } else {
    // 请求失败,可以调用 CosResult 的成员函数输出错误信息,如 requestID 等
    }

    参数说明

    参数
    参数描述
    类型
    是否必填
    req
    GetBucketCORS 操作的请求
    GetBucketCORSReq
    resp
    GetBucketCORS 操作的响应
    GetBucketCORSResp
    GetBucketCORSReq 提供以下成员函数:
    // 从响应中获取跨域规则
    std::vector<CORSRule> GetCORSRules() const;

    删除跨域配置

    功能说明

    删除指定存储桶的跨域名访问配置(DELETE Bucket cors)。

    方法原型

    CosResult BucketOp::DeleteBucketCORS(const DeleteBucketCORSReq& req, DeleteBucketCORSResp* resp);

    请求示例

    qcloud_cos::CosConfig config("./config.json");
    qcloud_cos::CosAPI cos(config);
    std::string bucket_name = "examplebucket-1250000000";
    qcloud_cos::DeleteBucketCORSReq req(bucket_name);
    qcloud_cos::DeleteBucketCORSResp resp;
    
    qcloud_cos::CosResult result = cos.DeleteBucketCORS(req, &resp);
    if (result.IsSucc()) {
    // 请求成功
    } else {
    // 请求失败,可以调用 CosResult 的成员函数输出错误信息,如 requestID 等
    }

    参数说明

    参数
    参数描述
    类型
    是否必填
    req
    DeleteBucketCORS 操作的请求
    DeleteBucketCORSReq
    resp
    DeleteBucketCORS 操作的响应
    DeleteBucketCORSResp
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持