디렉터리 버킷에서 객체 삭제 - Amazon Simple Storage Service

디렉터리 버킷에서 객체 삭제

Amazon S3 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWS SDK를 사용하여 Amazon S3 디렉터리 버킷에서 객체를 삭제할 수 있습니다. 자세한 내용은 디렉터리 버킷 작업S3 Express One Zone 단원을 참조하세요.

주의
  • 객체 삭제는 실행 취소할 수 없습니다.

  • 이 작업은 지정된 모든 객체를 삭제합니다. 폴더를 삭제할 때 폴더에 새 객체를 추가하기 전에 삭제 작업이 완료될 때까지 기다립니다. 그러지 않으면 새 객체도 삭제될 수 있습니다.

참고

디렉터리 버킷에서 프로그래밍 방식으로 여러 객체를 삭제할 경우 다음에 유의하세요.

  • DeleteObjects 요청의 객체 키는 공백이 아닌 문자를 하나 이상 포함해야 합니다. 공백 문자로만 구성된 문자열은 지원되지 않습니다.

  • DeleteObjects 요청의 객체 키에는 유니코드 제어 문자를 포함할 수 없습니다. 단, 줄바꿈(\n), 탭(\t) 및 캐리지 리턴(\r)은 예외입니다.

객체 삭제
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 디렉터리 버킷을 선택합니다.

  3. 삭제할 객체가 포함된 디렉터리 버킷을 선택합니다.

  4. 객체(Objects) 탭을 선택합니다. 객체 목록에서 삭제할 하나 또는 여러 객체 옆의 확인란을 선택합니다.

  5. Delete(삭제)를 선택합니다.

  6. 객체 삭제 페이지에서 텍스트 상자에 permanently delete를 입력합니다.

  7. 객체 삭제를 선택합니다.

SDK for Java 2.x

다음 예시에서는 AWS SDK for Java 2.x를 사용하여 디렉터리 버킷의 객체를 삭제합니다.

static void deleteObject(S3Client s3Client, String bucketName, String objectKey) { try { DeleteObjectRequest del = DeleteObjectRequest.builder() .bucket(bucketName) .key(objectKey) .build(); s3Client.deleteObject(del); System.out.println("Object " + objectKey + " has been deleted"); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
SDK for Python

다음 예시에서는 AWS SDK for Python (Boto3)을 사용하여 디렉터리 버킷의 객체를 삭제합니다.

import logging import boto3 from botocore.exceptions import ClientError def delete_objects(s3_client, bucket_name, objects): ''' Delete a list of objects in a directory bucket :param s3_client: boto3 S3 client :param bucket_name: Bucket that contains objects to be deleted; for example, 'doc-example-bucket--usw2-az1--x-s3' :param objects: List of dictionaries that specify the key names to delete :return: Response output, else False ''' try: response = s3_client.delete_objects( Bucket = bucket_name, Delete = { 'Objects': objects } ) return response except ClientError as e: logging.error(e) return False if __name__ == '__main__': region = 'us-west-2' bucket_name = 'BUCKET_NAME' objects = [ { 'Key': '0.txt' }, { 'Key': '1.txt' }, { 'Key': '2.txt' }, { 'Key': '3.txt' }, { 'Key': '4.txt' } ] s3_client = boto3.client('s3', region_name = region) results = delete_objects(s3_client, bucket_name, objects) if results is not None: if 'Deleted' in results: print (f'Deleted {len(results["Deleted"])} objects from {bucket_name}') if 'Errors' in results: print (f'Failed to delete {len(results["Errors"])} objects from {bucket_name}')

다음 delete-object 예시 명령에서는 AWS CLI를 사용하여 디렉터리 버킷에서 객체를 삭제하는 방법을 보여 줍니다. 이 명령을 실행하려면 user input placeholders를 사용자의 정보로 대체합니다.

aws s3api delete-object --bucket bucket-base-name--zone-id--x-s3 --key KEY_NAME

자세한 정보는 AWS CLI 명령 참조delete-object 섹션을 참조하세요.

다음 delete-objects 예시 명령에서는 AWS CLI를 사용하여 디렉터리 버킷에서 객체를 삭제하는 방법을 보여줍니다. 이 명령을 실행하려면 user input placeholders를 사용자의 정보로 대체합니다.

delete.json 파일은 다음과 같습니다.

{ "Objects": [ { "Key": "0.txt" }, { "Key": "1.txt" }, { "Key": "2.txt" }, { "Key": "3.txt" } ] }

delete-objects 예시 명령은 다음과 같습니다.

aws s3api delete-objects --bucket bucket-base-name--zone-id--x-s3 --delete file://delete.json

자세한 정보는 AWS CLI 명령 참조delete-objects 섹션을 참조하세요.