翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
バケットの作成、一覧表示、削除
Amazon Simple Storage Service (Amazon S3) 内のすべてのオブジェクトまたはファイルは、オブジェクトのフォルダを表すバケットに含まれています。各バケットの名前は AWS 内でグローバルに一意である必要があります。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 バケットの使用」を参照してください。
前提条件
作業を始める前に「AWS SDK for C++ の開始方法」を読むことをお勧めします。
コード例をダウンロードし、「コード例の開始方法」の説明に従ってソリューションをビルドします。
例を実行するには、リクエストに使用するユーザープロファイルに、AWS のサービスとアクションに対する適切なアクセス許可が付与されている必要があります。詳細については、「AWS 認証情報の提供」を参照してください。
バケットの一覧表示
list_buckets の例を実行するには、コマンドプロンプトで、ビルドシステムによる実行可能ファイルの作成先フォルダに移動します。実行可能ファイルを run_list_buckets のように実行します (完全な実行可能ファイル名はオペレーティングシステムによって異なります)。出力には、アカウントにバケットがある場合は一覧表示され、バケットがない場合は空のリストが表示されます。
list_buckets.cpp には 2 つの方法があります。
-
main()がListBuckets()を呼び出す。 -
ListBuckets()が SDK を使用してバケットをクエリする。
S3Client オブジェクトは SDK の ListBuckets() メソッドを呼び出します。成功すると、このメソッドは ListBucketOutcome オブジェクトを返します。このオブジェクトには ListBucketResult オブジェクトが含まれています。ListBucketResult オブジェクトは GetBuckets() メソッドを呼び出して、アカウント内の各 Amazon S3 バケットに関する情報を含む Bucket オブジェクトのリストを取得します。
コード
bool AwsDoc::S3::listBuckets(const Aws::S3::S3ClientConfiguration &clientConfig) { Aws::S3::S3Client client(clientConfig); auto outcome = client.ListBuckets(); bool result = true; if (!outcome.IsSuccess()) { std::cerr << "Failed with error: " << outcome.GetError() << std::endl; result = false; } else { std::cout << "Found " << outcome.GetResult().GetBuckets().size() << " buckets\n"; for (auto &&b: outcome.GetResult().GetBuckets()) { std::cout << b.GetName() << std::endl; } } return result; }
GitHub で完全な list_buckets の例
バケットを作成する
create_bucket の例を実行するには、コマンドプロンプトで、ビルドシステムによる実行可能ファイルの作成先フォルダに移動します。実行可能ファイルを run_create_bucket のように実行します (完全な実行可能ファイル名はオペレーティングシステムによって異なります)。このコードはアカウントに空のバケットを作成し、そのリクエストの成功または失敗を表示します。
create_bucket.cpp には 2 つの方法があります。
-
main()がCreateBucket()を呼び出す。main()で、enumを使用して、アカウントのリージョンに応じて AWS リージョン を変更する必要があります。アカウントのリージョンを確認するには、AWS マネジメントコンソールにログインし、右上隅に表示されるリージョン名を見つけます。 -
CreateBucket()が SDK を使用してバケットを作成する。
S3Client オブジェクトは SDK の CreateBucket() メソッドの呼び出しで、バケット名を CreateBucketRequest で指定して渡します。デフォルトでは、バケットは us-east-1 (バージニア北部) リージョンに作成されます。リージョンが us-east-1 でない場合、バケットが指定リージョンに作成されるように、このコードはバケットの制約を設定します。
コード
bool AwsDoc::S3::createBucket(const Aws::String &bucketName, const Aws::S3::S3ClientConfiguration &clientConfig) { Aws::S3::S3Client client(clientConfig); Aws::S3::Model::CreateBucketRequest request; request.SetBucket(bucketName); if (clientConfig.region != "us-east-1") { Aws::S3::Model::CreateBucketConfiguration createBucketConfig; createBucketConfig.SetLocationConstraint( Aws::S3::Model::BucketLocationConstraintMapper::GetBucketLocationConstraintForName( clientConfig.region)); request.SetCreateBucketConfiguration(createBucketConfig); } Aws::S3::Model::CreateBucketOutcome outcome = client.CreateBucket(request); if (!outcome.IsSuccess()) { auto err = outcome.GetError(); std::cerr << "Error: createBucket: " << err.GetExceptionName() << ": " << err.GetMessage() << std::endl; } else { std::cout << "Created bucket " << bucketName << " in the specified AWS Region." << std::endl; } return outcome.IsSuccess(); }
GitHub で完全な create_buckets の例
バケットを削除する
delete_bucket の例を実行するには、コマンドプロンプトで、ビルドシステムによる実行可能ファイルの作成先フォルダに移動します。実行可能ファイルを run_delete_bucket のように実行します (完全な実行可能ファイル名はオペレーティングシステムによって異なります)。このコードは、アカウント内の指定されたバケットを削除し、リクエストの成功または失敗を表示します。
delete_bucket.cpp には 2 つの方法があります。
-
main()がDeleteBucket()を呼び出す。main()で、enumを使用して、アカウントのリージョンに応じて AWS リージョン を変更する必要があります。また、bucket_nameを削除対象のバケットの名前に変更する必要もあります。 -
DeleteBucket()が SDK を使用してバケットを削除する。
S3Client オブジェクトは、SDK の DeleteBucket() メソッドの使用時に、削除対象のバケットの名前を DeleteBucketRequest オブジェクトで指定して渡します。成功するには、バケットが空である必要があります。
コード
bool AwsDoc::S3::deleteBucket(const Aws::String &bucketName, const Aws::S3::S3ClientConfiguration &clientConfig) { Aws::S3::S3Client client(clientConfig); Aws::S3::Model::DeleteBucketRequest request; request.SetBucket(bucketName); Aws::S3::Model::DeleteBucketOutcome outcome = client.DeleteBucket(request); if (!outcome.IsSuccess()) { const Aws::S3::S3Error &err = outcome.GetError(); std::cerr << "Error: deleteBucket: " << err.GetExceptionName() << ": " << err.GetMessage() << std::endl; } else { std::cout << "The bucket was deleted" << std::endl; } return outcome.IsSuccess(); }
GitHub で完全な delete_bucket の例