본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

버킷 삭제 (Delete buckets)

원문 보기 위키 갱신

R2 버킷을 삭제하려면 먼저 버킷에서 모든 객체를 제거해야 해요. 버킷이 비워지면 그때 비로소 삭제할 수 있어요.

출처: 문서

본문

버킷 비우기 (Empty a bucket)

버킷을 비우면 버킷 안의 모든 객체가 삭제돼요. 버킷 자체와 그 구성(라이프사이클 규칙, CORS, 이벤트 알림, 커스텀 도메인)은 유지돼요.

이 과정에서 제거된 객체는 복구할 수 없어요. 버킷에 버킷 잠금 규칙(bucket lock rules)이 있다면 버킷을 비우기 전에 반드시 제거해야 해요.

버킷을 비우는 방법은 여러 가지가 있어요.

대시보드 (Dashboard)

대시보드는 버킷에 몇 개의 객체가 있든 관계없이 처리해 주는 빈 버킷(Empty Bucket) 작업을 제공해요. 큰 버킷의 경우 작업이 백그라운드에서 실행되며 모든 객체가 제거될 때까지 대시보드가 진행 상황을 표시해요.

  • Cloudflare 대시보드에서 R2 객체 스토리지(R2 object storage) 페이지로 이동해요. 개요(Overview)로 이동 ↗
  • 비우려는 버킷을 선택해요.
  • 설정(Settings) 탭으로 이동해요.
  • 빈 버킷(Empty Bucket) 섹션까지 스크롤해요.
  • 비우기(Empty) 를 선택해요.
  • 나타나는 대화상자에서 작업을 확인해요.

객체 라이프사이클 규칙 (Object lifecycle rules)

버킷의 모든 객체를 만료시키는 객체 라이프사이클 규칙을 구성할 수 있어요.

  • 접두사 필터가 없고 만료 기간이 1일인 라이프사이클 규칙을 추가해요.
  • 규칙이 적용될 때까지 기다려요. 객체는 일반적으로 24시간 내에 제거되지만, 큰 버킷은 더 오래 걸릴 수 있어요.
  • 버킷이 비워진 뒤에 라이프사이클 규칙을 제거해요.
Wrangler

1일 후 모든 객체를 만료시키는 라이프사이클 규칙을 추가해요.

npx wrangler r2 bucket lifecycle add <BUCKET_NAME> --expire-days 1

버킷이 비워진 뒤 규칙을 제거해요.

npx wrangler r2 bucket lifecycle remove <BUCKET_NAME> --id <RULE_ID>

라이프사이클 명령의 전체 목록은 Wrangler R2 명령을 참고해요.

S3 API나 대시보드를 사용해서도 라이프사이클 규칙을 구성할 수 있어요. 자세한 내용은 객체 라이프사이클(Object lifecycles)을 참고해요.

기타 방법 (Other approaches)

S3 API나 Workers API를 사용해 객체를 일괄로 나열하고 삭제하는 스크립트를 작성할 수도 있고, rclone을 사용해 명령줄에서 객체를 제거할 수도 있어요.

버킷 삭제 (Delete a bucket)

버킷이 비워지면 영구적으로 삭제할 수 있어요. 버킷을 삭제하면 버킷과 모든 구성(라이프사이클 규칙, CORS 설정, 이벤트 알림, 커스텀 도메인 포함)이 제거돼요.

버킷을 삭제하는 방법은 여러 가지가 있어요.

대시보드 (Dashboard)

  • Cloudflare 대시보드에서 R2 객체 스토리지(R2 object storage) 페이지로 이동해요. 개요(Overview)로 이동 ↗
  • 삭제하려는 버킷을 선택해요.
  • 설정(Settings) 탭으로 이동해요.
  • 버킷 삭제(Delete Bucket) 섹션까지 스크롤해요. 버킷이 비어 있지 않다면 먼저 빈 버킷(Empty Bucket) 을 선택해 모든 객체를 비워요.
  • 삭제(Delete) 를 선택해요.
  • 나타나는 대화상자에서 작업을 확인해요.

Wrangler

r2 bucket delete 명령으로 빈 버킷을 삭제해요.

npx wrangler r2 bucket delete <BUCKET_NAME>

버킷에 객체가 남아 있으면 이 명령은 실패해요. 이 명령을 실행하기 전에 버킷을 비워 두세요.

API

버킷 삭제 API 엔드포인트를 사용해 빈 버킷을 삭제해요.

curl -X DELETE "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/r2/buckets/<BUCKET_NAME>" \
  -H "Authorization: Bearer ***"

버킷이 jurisdiction에 있다면 cf-r2-jurisdiction 헤더를 포함해요.

curl -X DELETE "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/r2/buckets/<BUCKET_NAME>" \
  -H "Authorization: Bearer ***" \
  -H "cf-r2-jurisdiction: eu"

동작 방식 (Behavior)

  • 버킷은 완전히 비워진 뒤에만 삭제할 수 있어요. 객체가 포함된 버킷을 삭제하려 하면 오류가 반환돼요.
  • 버킷 잠금 규칙이 있는 버킷은 비울 수 없어요. 버킷을 비우기 전에 모든 잠금 규칙을 제거하세요.
  • 버킷에 구성된 이벤트 알림은 버킷이 삭제될 때 함께 제거돼요.
  • 버킷과 함께 커스텀 도메인을 사용한다면, 매달린(Dangling) DNS 레코드를 피하기 위해 삭제 전후에 도메인 연결을 제거하세요.

객체 삭제 (Delete objects)

R2 버킷에서 개별 객체나 폴더를 삭제해요.

버킷 잠금 (Bucket locks)

객체에 보존 정책을 설정해 실수로 삭제되는 것을 방지해요.

객체 라이프사이클 (Object lifecycles)

수동으로 비우는 대신 지정된 기간이 지나면 객체를 자동으로 만료시켜요.

버킷 생성 (Create buckets)

기존 버킷을 삭제한 뒤 새로운 R2 버킷을 생성해요.

더 알아보기 (Learn more)