Skip to content

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.objects and storage.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.objects
  • storage.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