기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
버킷 생성, 나열, 삭제
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에는 두 가지 메서드가 있습니다.
-
main()-ListBuckets()를 호출합니다. -
ListBuckets()- SDK를 사용하여 버킷을 쿼리합니다.
S3Client 객체는 SDK의 ListBuckets() 메서드를 호출합니다. 성공하면 메서드는 ListBucketResult 객체가 포함된 ListBucketOutcome 객체를 반환합니다. 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; }
전체 list_buckets 예제
버킷 생성
create_bucket 예제를 실행하려면 명령 프롬프트에서 빌드 시스템이 빌드 실행 파일을 생성하는 폴더로 이동합니다. run_create_bucket과 같은 실행 파일을 실행합니다. 전체 실행 파일 이름은 운영 체제에 따라 다릅니다. 이 코드는 계정 아래에 빈 버킷을 생성한 다음 요청의 성공 또는 실패를 표시합니다.
create_bucket.cpp에는 두 가지 메서드가 있습니다.
-
main()-CreateBucket()를 호출합니다.main()에서는enum를 사용하여 AWS 리전을 계정의 리전으로 변경해야 합니다. AWS Management 콘솔에 로그인한 후 오른쪽 상단 모서리에서 리전을 찾으면 본인 계정의 리전을 확인할 수 있습니다. -
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(); }
전체 create_buckets 예제
버킷 삭제
delete_bucket 예제를 실행하려면 명령 프롬프트에서 빌드 시스템이 빌드 실행 파일을 생성하는 폴더로 이동합니다. run_delete_bucket과 같은 실행 파일을 실행합니다. 전체 실행 파일 이름은 운영 체제에 따라 다릅니다. 코드는 계정에 지정된 버킷을 삭제한 다음 요청의 성공 또는 실패를 표시합니다.
delete_bucket.cpp에는 두 가지 메서드가 있습니다.
-
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(); }
전체 delete_bucket 예제