Docs
Storage
How SupaClone clones Supabase Storage buckets, files, policies, public access, and verification details.
Last updated 2026-07-26
What can be cloned
Storage cloning is optional. When selected, SupaClone can clone:
- Bucket configuration.
- Public/private bucket state.
- File size limits and allowed MIME types when available.
- Storage files for snapshot clones.
- Policies on
storage.objectsandstorage.buckets.
Bucket behavior
If a bucket does not exist on the target, SupaClone creates it. If it already exists, SupaClone updates its configuration after confirming the target bucket is empty.
For public buckets, SupaClone creates the bucket conservatively and finalizes public access after files and policies have been copied.
File behavior
Storage files are copied in snapshot mode. Structure-only clones copy bucket and policy configuration without copying object contents.
SupaClone lists objects recursively, downloads from the source, uploads to the target, and verifies target objects using available metadata such as size and checksum values.
Policy behavior
SupaClone recreates policies on:
storage.objectsstorage.buckets
The clone report also calls out risky policy patterns, such as public roles or write policies without WITH CHECK.
Project URLs inside table data
Storage object URLs are often stored in table rows: avatar links, file references, JSON payloads. When table data is cloned, SupaClone rewrites URLs that point at the source project - such as https://<source-ref>.supabase.co/storage/v1/object/public/... and the <source-ref>.storage.supabase.co host form - to the target project ref. The cloned app then loads files from the cloned buckets instead of the source project.
The option is on by default for "Structure + exact data" clones and can be turned off under Data options. The clone report shows how many rows were rewritten and lists any table that could not be rewritten, including the exact SQL to run manually.
Signed URLs carry tokens issued by the source project and must be re-generated against the target. URLs served through custom domains or CDNs are not rewritten.
Limitations
Storage cloning is not a merge tool. The target bucket must be empty before files are copied.
Very large buckets may be limited by runtime, bandwidth, or Supabase API behavior. For large production buckets, run a smaller staging clone first and verify performance before copying everything.
Ready to run a verified clone?
Start with a fresh target project, choose exactly what to copy, and review the clone report after the run completes.
Clone your first project free