전체 Supabase Storage Bucket을 로컬에 다운로드하는 방법
Source: Dev.to
소개
Supabase로 개발해 본 사람이라면 스토리지 API가 웹 앱에 얼마나 훌륭한지 알고 있을 겁니다. 때때로 파일을 로컬 머신에 가져와야 할 때가 있습니다—수동 백업, 대량 편집, 혹은 데이터 마이그레이션을 위해서죠. Supabase SDK를 사용해 스크립트를 작성할 수도 있지만, 더 빠른 “코드 없이” 할 수 있는 방법이 있습니다: Cyberduck.
참고: Cyberduck은 공식 Supabase 파트너 통합 도구입니다. S3 프로토콜을 통해 스토리지를 관리하기 위해 Supabase가 권장하는 보안·오픈소스 툴이죠. 공식 통합 페이지는 Supabase 문서에서 확인할 수 있습니다.
사전 준비 사항
- 스토리지가 활성화된 Supabase 프로젝트
- Cyberduck 설치 (공식 다운로드 페이지에서 최신 버전 다운로드)
- Supabase 프로젝트용 S3 액세스 키
S3 액세스 키 만들기
- Supabase 대시보드에 로그인합니다.
- Storage → S3 Settings(사이드바)로 이동합니다.
- Access Keys 섹션에서 Create Access Key를 클릭합니다.
- 설명을 입력합니다(예: “Local Backup”) 그리고 Create를 클릭합니다.
- 중요: Access Key ID와 Secret Access Key를 즉시 복사해 두세요. 비밀 키는 다시 볼 수 없습니다.
Cyberduck을 Supabase에 연결하기
-
컴퓨터에
supabase.cyberduckprofile파일을 생성합니다. -
아래 XML을 파일에 붙여넣습니다:
<Profile> <Protocol>s3</Protocol> <Vendor>Supabase Storage S3</Vendor> <Scheme>https</Scheme> <Description>Supabase Storage (S3)</Description> <DefaultHostname>YOUR_PROJECT_REF.supabase.co</DefaultHostname> <DefaultPort>443</DefaultPort> <Region>YOUR_REGION</Region> <Properties> <Property key="s3.storage.class.options">STANDARD</Property> <Property key="s3.bucket.virtualhost.disable">true</Property> </Properties> <Context>/storage/v1/s3</Context> </Profile> -
YOUR_PROJECT_REF를 프로젝트 ID( Supabase URL에서 확인)로,YOUR_REGION을 해당 지역(예:ap-south-1)으로 바꿉니다. -
파일을 저장하고 두 번 클릭합니다. Cyberduck이 열리면서 인증 정보를 묻습니다. 앞서 만든 Access Key ID와 Secret Access Key를 입력합니다.
버킷을 로컬에 다운로드하기
- 연결이 완료되면 Supabase 버킷이 폴더 형태로 표시됩니다.
- 다운로드하려는 버킷을 선택합니다.
- 버킷을 오른쪽 클릭하고 Download를 선택합니다. 로컬에 저장할 폴더를 지정하면 Cyberduck이 전송을 수행합니다.
로컬 폴더와 동기화 유지(미러)
최신 변경 사항을 매번 전체 다운로드 없이 로컬에 반영하고 싶다면:
- 버킷(또는 로컬 폴더)을 오른쪽 클릭하고 Mirror를 선택합니다.
- Cyberduck이 원격과 로컬 내용을 비교해 차이점만 전송합니다.
Cyberduck을 통한 S3 액세스 활용 사례
- 대량 업로드: 수천 개의 자산(예: 제품 이미지)을 직접 Supabase에 끌어다 놓기—대용량 파일을 웹 대시보드보다 안정적으로 업로드할 수 있습니다.
- 직접 미디어 편집: 일부 편집기는 Cyberduck에서 파일을 열어 바로 편집하고 클라우드에 저장하도록 지원합니다.
- 크로스 클라우드 마이그레이션: AWS S3, Cloudflare R2, Supabase 간 파일을 이동하려면 두 개의 Cyberduck 창을 열고 끌어다 놓기만 하면 됩니다.
- 인프라 테스트: 프론트엔드 코드를 작성하기 전에 S3 정책 및 IAM‑유형 권한을 검증할 수 있습니다.