tencent cloud

文档反馈

预签名 URL

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

    简介

    C++ SDK 提供生成签名和获取请求预签名 URL 接口,详细操作请查看本文说明和示例。
    关于使用预签名 URL 上传的说明请参见 预签名授权上传, 使用预签名 URL 下载的说明请参见 预签名授权下载
    说明
    建议用户使用临时密钥生成预签名,通过临时授权的方式进一步提高预签名上传、下载等请求的安全性。申请临时密钥时,请遵循 最小权限指引原则,防止泄露目标存储桶或对象之外的资源。
    如果您一定要使用永久密钥来生成预签名,建议永久密钥的权限范围仅限于上传或下载操作,以规避风险。

    生成签名

    功能说明

    计算并生成签名。

    方法原型一

    static std::string Sign(const std::string& secret_id,
    const std::string& secret_key,
    const std::string& http_method,
    const std::string& in_uri,
    const std::map<std::string, std::string>& headers,
    const std::map<std::string, std::string>& params);

    参数说明

    参数名称
    参数描述
    类型
    secret_id
    开发者拥有的项目身份识别 ID,用以身份认证
    String
    secret_key
    开发者拥有的项目身份密钥
    String
    http_method
    HTTP 方法,如 POST/GET/HEAD/PUT 等, 传入大小写不敏感
    String
    in_uri
    HTTP uri
    String
    headers
    HTTP header 的键值对
    map<string,string>
    params
    HTTP params 的键值对
    map<string,string>

    返回结果说明

    返回签名字符串,可以在指定的有效期内(通过 CosSysConfig 设置,默认60s)使用,返回空串表示计算签名失败。

    方法原型二

    static std::string Sign(const std::string& secret_id,
    const std::string& secret_key,
    const std::string& http_method,
    const std::string& in_uri,
    const std::map<std::string, std::string>& headers,
    const std::map<std::string, std::string>& params,
    uint64_t start_time_in_s,
    uint64_t end_time_in_s);

    参数说明

    参数名称
    参数描述
    类型
    secret_id
    开发者拥有的项目身份识别 ID,用以身份认证
    String
    secret_key
    开发者拥有的项目身份密钥
    String
    http_method
    HTTP 方法,如 POST/GET/HEAD/PUT 等,传入大小写不敏感
    String
    in_uri
    HTTP uri
    String
    headers
    HTTP header 的键值对
    map <string,string>
    params
    HTTP params 的键值对
    map <string,string>
    start_time_in_s
    签名生效的开始时间
    uint64_t
    end_time_in_s
    签名生效的截止时间
    uint64_t

    返回结果说明

    返回签名字符串,可以在指定的有效期内(通过 CosSysConfig 设置,默认60s)使用,返回空串表示计算签名失败。

    获取请求预签名 URL

    std::string GeneratePresignedUrl(const GeneratePresignedUrlReq& req)

    参数说明

    参数
    参数描述
    req
    GeneratePresignedUrlReq,GeneratePresignedUrl 操作的请求
    HTTP_METHOD 枚举定义如下:
    typedef enum {
    HTTP_HEAD,
    HTTP_GET,
    HTTP_PUT,
    HTTP_POST,
    HTTP_DELETE,
    HTTP_OPTIONS
    } HTTP_METHOD;

    预签名请求示例

    可根据 CosConfig 类设置永久密钥或临时密钥发起预签名请求,具体配置文件内容请参见 快速入门 文档。
    qcloud_cos::CosConfig config("./config.json");
    qcloud_cos::CosAPI cos(config);
    
    std::string bucket_name = "examplebucket-1250000000";
    std::string object_name = "exampleobject";
    
    // 添加存储桶名称和对象键,以及 HTTP 请求方法。
    // 注意:用户无需对 object_name 进行编码操作
    qcloud_cos::GeneratePresignedUrlReq req(bucket_name, object_name, qcloud_cos::HTTP_GET);
    std::string presigned_url = cos.GeneratePresignedUrl(req);
    
    
    联系我们

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

    技术支持

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

    7x24 电话支持