全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

管理文件访问权限(C++)

最近更新时间:2024-12-05 18:44:59

设置文件访问权限

通过请求头设置文件访问权限

以下代码用于设置文件访问权限:

#include "ks3.h"
#include <iostream>

using namespace ks3;

int main() {
    std::string host = "ks3-cn-beijing.ksyuncs.com";
    // 准备client上下文信息

    // 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
    // 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
    std::string ak = "yourAccessKey"; // 填写实际的AccessKey
    std::string sk = "yourSecretKey"; // 填写实际的SecretKey
    // 填写桶名
    std::string bucket = "yourBucketName";
    // 填写要设置acl的对象名
    std::string object_key = "yourKeyName";
    // 初始化网络资源
    sdk::KS3Client::InitGlobalCurl();
    // 初始化client
    sdk::KS3Client client(host);
    client.Init();

    sdk::ClientContext ctx;
    ctx.bucket = bucket;
    ctx.object_key = object_key;
    ctx.accesskey = ak;
    ctx.secretkey = sk;

    sdk::KS3Response response;
    int code = client.SetCannedAcl(ctx, "public-read", &response);
    if (code != 0) {
        std::cout << "failed to call curl with error code " << code << std::endl;
        return -1;
    }

    std::cout << response.status_code << std::endl;
    std::cout << response.headers_buffer << std::endl;
    std::cout << response.content << std::endl;

    sdk::KS3Client::DestroyGlobalCurl();

    return 0;
}

通过请求体设置文件访问权限

#include "ks3.h"
#include <iostream>

using namespace ks3;

int main() {
    std::string host = "ks3-cn-beijing.ksyuncs.com";
    // 准备用户信息
    // 准备client上下文信息

    // 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
    // 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
    std::string ak = "yourAccessKey"; // 填写实际的AccessKey
    std::string sk = "yourSecretKey"; // 填写实际的SecretKey
    // 填写桶名
    std::string bucket = "yourBucketName";
    // 填写要设置acl的对象名
    std::string object_key = "yourKeyName";
    // 初始化网络资源
    sdk::KS3Client::InitGlobalCurl();
    // 初始化client
    sdk::KS3Client client(host);
    client.Init();

    sdk::ClientContext ctx;
    ctx.bucket = bucket;
    ctx.object_key = object_key;
    ctx.accesskey = ak;
    ctx.secretkey = sk;

    sdk::KS3Response response;
    // 设置请求体信息
    sdk::AccessControlPolicy policy;
    sdk::AccessControlPolicy::Grant grant;
    grant.grantee_type = "CanonicalUser";
    grant.permission = "READ";
    grant.grantee_id = "123456";
    grant.grantee_display_name = "123456";
    policy.access_control_list.push_back(grant);

    int code = client.SetAcl(ctx, policy, &response);
    if (code != 0) {
        std::cout << "failed to call curl with error code " << code << std::endl;
        return -1;
    }

    std::cout << response.status_code << std::endl;
    std::cout << response.headers_buffer << std::endl;
    std::cout << response.content << std::endl;

    sdk::KS3Client::DestroyGlobalCurl();

    return 0;
}

获取文件访问权限

#include "ks3.h"
#include <iostream>

using namespace ks3;

int main() {
    std::string host = "ks3-cn-beijing.ksyuncs.com";
    // 准备client上下文信息

    // 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
    // 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
    std::string ak = "yourAccessKey"; // 填写实际的AccessKey
    std::string sk = "yourSecretKey"; // 填写实际的SecretKey
    // 填写桶名
    std::string bucket = "yourBucketName";
    // 填写要查看具体acl的对象名
    std::string object_key = "yourKeyName";
    // 初始化网络资源
    sdk::KS3Client::InitGlobalCurl();
    // 初始化client
    sdk::KS3Client client(host);
    client.Init();

    sdk::ClientContext ctx;
    ctx.bucket = bucket;
    ctx.object_key = object_key;
    ctx.accesskey = ak;
    ctx.secretkey = sk;

    sdk::KS3Response response;
    // 结果将写入policy
    sdk::AccessControlPolicy policy;
    int code = client.GetAcl(ctx, policy, &response);
    if (code != 0) {
        std::cout << "failed to call curl with error code " << code << std::endl;
        return -1;
    }

    std::cout << response.status_code << std::endl;
    std::cout << response.headers_buffer << std::endl;
    std::cout << response.content << std::endl;
    
    std::cout << policy.owner.id << std::endl;
    std::cout << policy.owner.display_name << std::endl;

    for (const auto& grant : policy.access_control_list) {
        std::cout << grant.grantee_type << std::endl;
        std::cout << grant.grantee_id << std::endl;
        std::cout << grant.grantee_display_name << std::endl;
        std::cout << grant.permission << std::endl;
    }

    sdk::KS3Client::DestroyGlobalCurl();

    return 0;
}

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈