프로그래밍 방식으로 버킷 생성, S3 객체에 CRUD 작업 하는 방법, S3 객체 관리 위한 배치 작업
HeadBucket API는 버킷이 존재하는지, 해당 버킷에 액세스 권한 있는지 확인
Python 예제
def verifyBucketName(s3Client, bucket): try: # 버킷이 AWS에 이미 존재하는지 확인 s3client.head_bucket(Bucket=bucket) raise SystemExit("버킷이 이미 생성되었습니다") except botocore.exceptrions.ClientError as e: error_code=int(e.response['Error']['Code'] if error_code == 404: print("버킷이 존재하지 않습니다. 계속 진행해주세요") if error_code == 403: raise SystemExit("이 버킷은 이미 다른 AWS 계정에 존재합니다")
버킷 생성하기 - Python
s3_client = boto3.client('s3', region_name = region) location = {'LocationConstraint':region} s3_client.create_bucket(bucket=bucket_name, CreateBucketConfiguration=location) # 클라이언트와 동일한 리전에서 버킷을 생성
버킷 생성될때 까지 기다리기 - Python
waiter = s3Client.get_waiter('bucket_exists') waiter.wait(Bucket=bucket)
객체 가져오기 - Python
def get_object(bucket, object_key): try: obj = s3.Object(bucketname, object_key) body = obj.get()['Body'].resd() logger.info("Got object '%s' from bucket '%s'.", object_ley, bucket_name) except ClientError: logger.exception(("Cloudn't get object '%s' from bucket '%s'.", object_key,bucket_name)) raise else: return body
SQL 표현식 사용해 객체에서 데이터 하위 집합 검색
GET 메서드보다 빠르고 저렴하게 사용할 수 있다.