Create a bucket (C++ SDK V2)

更新时间:
复制 MD 格式

A bucket is a container for objects in Object Storage Service (OSS). All objects must be stored in a bucket. You can use the OSS C++ SDK V2 to create a bucket.

Usage notes

  • Before you run the sample code, replace <region> with a valid region, such as cn-hangzhou.

  • The sample code uses environment variables to obtain access credentials. For more information, see Configure access credentials.

  • To create a bucket, you must have the oss:PutBucket permission.

  • Each Alibaba Cloud account can create up to 100 buckets per region.

Sample code

Create a bucket

The following sample code creates a bucket with the default configuration:

#include <iostream>
#include "alibabacloud/oss2/ClientConfiguration.h"
#include "alibabacloud/oss2/OSSClient.h"
#include "alibabacloud/oss2/credentials/CredentialsProvider.h"

namespace oss = alibabacloud::oss2;

int main() {
    auto conf = oss::ClientConfiguration::loadDefault();
    conf.region = "<region>";
    conf.credentialsProvider = std::make_shared<oss::EnvironmentVariableCredentialsProvider>();

    oss::OSSClient client(conf);

    auto outcome = client.putBucket(
        oss::models::PutBucketRequest()
            .setBucket("examplebucket"));

    if (!outcome.has_value()) {
        auto& e = outcome.error();
        std::cerr << "Failed to create bucket"
                  << ", code: " << e.getCode()
                  << ", message: " << e.getMessage()
                  << ", requestId: " << e.getRequestId() << std::endl;
        return 1;
    }

    auto& result = outcome.value();
    std::cout << "Bucket created successfully"
              << ", status: " << result.getStatusCode()
              << ", requestId: " << result.getRequestId() << std::endl;
    return 0;
}
          

Create a bucket with storage class and ACL

The following sample code creates a bucket with a specified storage class and access control list (ACL):

#include <iostream>
#include "alibabacloud/oss2/ClientConfiguration.h"
#include "alibabacloud/oss2/OSSClient.h"
#include "alibabacloud/oss2/credentials/CredentialsProvider.h"

namespace oss = alibabacloud::oss2;

int main() {
    auto conf = oss::ClientConfiguration::loadDefault();
    conf.region = "<region>";
    conf.credentialsProvider = std::make_shared<oss::EnvironmentVariableCredentialsProvider>();

    oss::OSSClient client(conf);

    auto outcome = client.putBucket(
        oss::models::PutBucketRequest()
            .setBucket("examplebucket")
            .setAcl("public-read")
            .setCreateBucketConfiguration(
                oss::models::CreateBucketConfiguration()
                    .setStorageClass("IA")));

    if (!outcome.has_value()) {
        auto& e = outcome.error();
        std::cerr << "Failed to create bucket"
                  << ", code: " << e.getCode()
                  << ", message: " << e.getMessage()
                  << ", requestId: " << e.getRequestId() << std::endl;
        return 1;
    }

    auto& result = outcome.value();
    std::cout << "Bucket created successfully"
              << ", status: " << result.getStatusCode()
              << ", requestId: " << result.getRequestId() << std::endl;
    return 0;
}
          

References