특정 s3 bucket을 통째로 삭제하는 python script 예시

2021-07-24

.

Data_Engineering_TIL(20210724)

  • 사용방법

python3 delete_bucket.py my-s3-bucket-name

  • delete_bucket.py
import boto3
import sys

def delete_all_objects(BUCKET):
    session = boto3.session()
    s3 = session.resource('s3')
    bucket = s3.Bucket(BUCKET)
    print("*"*150,'\n')
    print(bucket.objects.all().delete())    
    print('\n','delete all objects completed \n')
    print("*"*150,'\n')
    
def delete_all_object_versions(BUCKET):
    session = boto3.session()
    s3 = session.resource('s3')
    bucket = s3.Bucket(BUCKET)
    print("*"*150,'\n')
    print(bucket.object_versions.delete())    
    print('\n','delete all object_versions completed \n')
    print("*"*150,'\n')
    
def delete_bucket(BUCKET):
    client = boto3.client('s3')
    print(client.delete_bucket(Bucket=BUCKET))
    print('\n','delete all {} bucket completed \n'.format(BUCKET))
    print("*"*150,'\n')

if __name__ == "__main__":
    BUCKET = sys.argv[1]
    
    # step 1) delete_all_objects
    delete_all_objects(BUCKET)
    
    # step 2) delete_all_object_versions
    delete_all_object_versions(BUCKET)
    
    # step 3) delete_bucket
    delete_bucket(BUCKET)