import boto3
import os

def lambda_handler(event, context):
    # 환경 변수에서 버킷 이름과 프리픽스 가져오기
    bucket_name = os.environ['BUCKET_NAME']
    prefix = os.environ.get('PREFIX', '')  # 선택적 프리픽스

    # S3 클라이언트 설정
    s3_client = boto3.client('s3')

    # 객체 목록 가져오기
    response = s3_client.list_objects_v2(Bucket=bucket_name, Prefix=prefix)

    if 'Contents' in response:
        for obj in response['Contents']:
            key = obj['Key']
            # 객체 메타데이터 가져오기
            head_response = s3_client.head_object(Bucket=bucket_name, Key=key)
            
            # StorageClass가 없으면 기본값 'STANDARD' 사용
            storage_class = head_response.get('StorageClass', 'STANDARD')
            
            # Intelligent-Tiering 스토리지 클래스에 있는 객체만 삭제
            if storage_class == 'INTELLIGENT_TIERING':
                s3_client.delete_object(Bucket=bucket_name, Key=key)
                print(f"Deleted object: {key}")
            else:
                print(f"Skipped object: {key}, StorageClass: {storage_class}")

    return {
        'statusCode': 200,
        'body': 'Processed objects'
    }

