开发者社区 > 云存储 > 对象存储OSS > 正文

C++初始化OssClient 时,是否支持通过参数传入AK,SK?

SDK开发指导上描述如下:

/ 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。/

/ 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。/
auto credentialsProvider = std::make_shared();
OssClient client(Endpoint, credentialsProvider, conf);

是否有其他方式可以支持参数传AK,SK

展开
收起
1956821024176171 2023-12-18 15:35:24 113 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,C++初始化OssClient时,可以通过参数传入AK(Access Key)和SK(Secret Key)。

    你可以使用AlibabaCloud::OSS::Auth::StsTokenProvider类来传递AK和SK。下面是一个示例代码片段,展示了如何通过参数传入AK和SK来初始化OssClient:

    #include <iostream>
    #include <memory>
    #include <string>
    #include "oss_client.h"
    
    int main() {
        // 设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET
        const char* accessKeyId = getenv("OSS_ACCESS_KEY_ID");
        const char* accessKeySecret = getenv("OSS_ACCESS_KEY_SECRET");
    
        if (accessKeyId == nullptr || accessKeySecret == nullptr) {
            std::cerr << "请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET" << std::endl;
            return 1;
        }
    
        // 创建凭据提供者对象并传入AK和SK
        std::shared_ptr<AlibabaCloud::OSS::Auth::StsTokenProvider> credentialsProvider =
            std::make_shared<AlibabaCloud::OSS::Auth::StsTokenProvider>(accessKeyId, accessKeySecret);
    
        // 创建OssClient对象并传入Endpoint、凭据提供者和配置信息
        AlibabaCloud::OSS::OssClient client(endpoint, credentialsProvider, conf);
    
        // 进行其他操作...
    
        return 0;
    }
    

    在上述示例中,我们首先从环境变量中获取AK和SK的值。然后,创建一个StsTokenProvider对象,并将AK和SK作为参数传递给它的构造函数。最后,将该凭据提供者对象传递给OssClient的构造函数,以完成初始化。

    2023-12-18 21:15:29
    赞同 展开评论 打赏
  • 是的,除了从环境变量中获取AK和SK之外,阿里云OSS C++ SDK还支持直接通过参数传入AK和SK。你可以使用GenericCredentialsProvider类来传递AK和SK。以下是一个示例:

    #include <alibabacloud/oss/OssClient.h>
    #include <alibabacloud/oss/model/SetBucketWebsiteRequest.h>
    #include <alibabacloud/oss/model/SetBucketWebsiteResult.h>
    #include <alibabacloud/core/CredentialsProvider.h>
    #include <alibabacloud/core/GenericCredentialsProvider.h>
    
    using namespace AlibabaCloud::OSS;
    using namespace AlibabaCloud::SDK::OSS::Model;
    
    int main() {
        // 创建凭证提供者,通过AK和SK初始化
        auto credentialsProvider = std::make_shared<AlibabaCloud::SDK::Core::GenericCredentialsProvider>(
            "yourAccessKeyId", "yourAccessKeySecret");
    
        // 创建OSS客户端
        OssClient client(Endpoint, credentialsProvider);
    
        // 现在你可以使用client进行OSS操作了
    
        return 0;
    }
    

    在这个示例中,将"yourAccessKeyId"和"yourAccessKeySecret"替换为你的实际AK和SK。这种方式允许你在代码中直接提供访问凭证,而不是依赖于环境变量。

    2023-12-18 15:52:58
    赞同 1 展开评论 打赏
问答分类:
问答标签:

对象存储 OSS 是一款安全、稳定、高性价比、高性能的云存储服务,可以帮助各行业的客户在互联网应用、大数据分析、机器学习、数据归档等各种使用场景存储任意数量的数据,以及进行任意位置的访问,同时通过丰富的数据处理能力更便捷地使用数据。

热门讨论

热门文章

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载