SIGN IN SIGN UP

Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.

0 0 4 Java
2021-12-15 10:48:34 -05:00
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
2021-11-15 13:15:43 +00:00
#include <iostream>
#include <aws/s3/S3Client.h>
#include <aws/s3/model/CreateBucketRequest.h>
#include <aws/s3/model/BucketLocationConstraint.h>
#include "s3_examples.h"
/**
* Before running this C++ code example, set up your development environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/getting-started.html
*
* Purpose
*
* Demonstrates using the AWS SDK for C++ to create an S3 bucket.
*
2021-12-15 10:48:34 -05:00
*/
//! Routine which demonstrates creating an S3 bucket.
/*!
\param bucketName: Name of bucket to create.
\param clientConfig: Aws client configuration.
\return bool: Function succeeded.
*/
2022-07-28 18:11:43 -04:00
// snippet-start:[s3.cpp.create_bucket.code]
bool AwsDoc::S3::createBucket(const Aws::String &bucketName,
const Aws::S3::S3ClientConfiguration &clientConfig) {
2022-07-28 18:11:43 -04:00
Aws::S3::S3Client client(clientConfig);
Aws::S3::Model::CreateBucketRequest request;
request.SetBucket(bucketName);
2022-09-15 11:03:36 -04:00
if (clientConfig.region != "us-east-1") {
Aws::S3::Model::CreateBucketConfiguration createBucketConfig;
createBucketConfig.SetLocationConstraint(
Aws::S3::Model::BucketLocationConstraintMapper::GetBucketLocationConstraintForName(
clientConfig.region));
request.SetCreateBucketConfiguration(createBucketConfig);
}
2022-07-28 18:11:43 -04:00
Aws::S3::Model::CreateBucketOutcome outcome = client.CreateBucket(request);
if (!outcome.IsSuccess()) {
2022-07-28 18:11:43 -04:00
auto err = outcome.GetError();
std::cerr << "Error: createBucket: " <<
2022-07-28 18:11:43 -04:00
err.GetExceptionName() << ": " << err.GetMessage() << std::endl;
} else {
2022-07-28 18:11:43 -04:00
std::cout << "Created bucket " << bucketName <<
" in the specified AWS Region." << std::endl;
}
return outcome.IsSuccess();
2022-07-28 18:11:43 -04:00
}
// snippet-end:[s3.cpp.create_bucket.code]
/*
*
* main function
*
* Usage: 'run_create_bucket <bucket_name_prefix>
*
*/
#ifndef EXCLUDE_MAIN_FUNCTION
int main(int argc, char* argv[]) {
2021-11-15 13:15:43 +00:00
Aws::SDKOptions options;
2021-12-15 10:48:34 -05:00
InitAPI(options);
if (argc != 2) {
std::cout << R"(
Usage:
run_create_bucket <bucket_name_prefix>
Where:
bucket_name - A bucket name prefix which will be made unique by appending a UUID.
)" << std::endl;
return 1;
}
Aws::String bucketNamePrefix = argv[1];
{
Aws::S3::S3ClientConfiguration clientConfig;
// Optional: Set to the AWS Region in which the bucket was created (overrides config file).
// clientConfig.region = "us-east-1";
// Create a unique bucket name to increase the chance of success
// when trying to create the bucket.
// Format: "<bucketNamePrefix> + "-" + lowercase UUID.
Aws::String uuid = Aws::Utils::UUID::RandomUUID();
Aws::String bucketName = bucketNamePrefix + "-" +
Aws::Utils::StringUtils::ToLower(uuid.c_str());
AwsDoc::S3::createBucket(bucketName, clientConfig);
}
2021-11-15 13:15:43 +00:00
ShutdownAPI(options);
}
#endif // EXCLUDE_MAIN_FUNCTION