Storage Buckets

Browse, create, and manage Supabase Storage buckets and files with public and private access.

Overview

The Storage section provides a file management interface for Supabase Storage. Browse buckets, navigate folders, upload and download files, and configure bucket visibility — all from a native macOS interface without switching to the Supabase dashboard.

Bucket Listing

Navigate to the Storage section from the sidebar to see all storage buckets. Each bucket displays:

  • Bucket name — the unique identifier
  • Visibility — public or private badge
  • File count — total number of objects in the bucket

Public vs Private Buckets

  • Public buckets — files are accessible via a public URL without authentication. Suitable for assets like avatars, product images, or static content.
  • Private buckets — files require a signed URL or valid API key to access. Suitable for user uploads, documents, or any sensitive content.

The visibility setting affects the default access behavior. RLS policies on the storage.objects table can provide additional fine-grained control regardless of bucket visibility.

Creating Buckets

  1. Click the + button in the storage sidebar.
  2. Enter a bucket name (lowercase, no spaces — use hyphens or underscores).
  3. Select Public or Private visibility.
  4. Optionally set allowed MIME types to restrict which file types can be uploaded.
  5. Optionally set a file size limit.
  6. Click Create.

The new bucket appears in the sidebar immediately.

File Browser

Click a bucket to open the file browser. Files and folders are displayed in a table with the following columns:

  • Name — file or folder name with an icon indicator
  • Size — file size in human-readable format (B, KB, MB, GB)
  • MIME Type — the content type of the file
  • Last Modified — the last update timestamp

Folders appear before files in the listing, regardless of the current sort order.

Folder Navigation

Click any folder to navigate into it. A breadcrumb trail at the top shows your current path. Click any breadcrumb segment to jump back to that level.

Pagination

Files load in pages for large buckets. Navigation controls at the bottom allow you to move between pages.

File Operations

Upload Files

Upload files using the toolbar button or drag-and-drop:

  1. Click the Upload button in the toolbar and select one or more files.
  2. Or drag files from Finder directly onto the file browser.
  3. Upload progress is displayed in a progress bar.
  4. Files are uploaded to the currently browsed folder path.

If a file with the same name already exists, Stackpane prompts you to overwrite or cancel.

Download Files

  1. Select a file in the table.
  2. Click Download in the inspector or use the context menu.
  3. Choose a save location in the file dialog.

Preview Files

For public buckets, the inspector displays a download URL that can be opened in a browser for quick preview. For private buckets, Stackpane generates a signed URL for temporary preview access.

Delete Files

  1. Select a file and click Delete in the inspector or context menu.
  2. Confirm the deletion in the dialog.

For bulk deletion, enable selection mode, select multiple files, and click Delete Selected.

Copy Files

  1. Select a file in the table.
  2. Click Copy in the inspector.
  3. Enter the destination path (bucket and folder).
  4. Click Copy to create the duplicate.

Custom Metadata

View and edit custom metadata on any file:

  1. Select a file in the table.
  2. Open the Metadata section in the inspector.
  3. View existing metadata key-value pairs.
  4. Click Edit to add, modify, or remove metadata entries.
  5. Click Save to apply changes.

Custom metadata is stored alongside the file and returned in API responses.

Sorting and Columns

Click column headers to sort by name, size, MIME type, or last modified date. Toggle column visibility with the column configuration button.

RLS on Storage

Supabase Storage uses Row-Level Security on the storage.objects table to control access. Common patterns include:

  • Allowing users to upload only to their own folder (auth.uid() in the path)
  • Restricting downloads to authenticated users
  • Allowing public read access to specific buckets

Manage storage RLS policies from the Row-Level Security section in Stackpane by selecting the storage.objects table.

Tips

  • Use public buckets for static assets that do not require access control
  • Use private buckets with signed URLs for user-uploaded content
  • Set MIME type restrictions on buckets to prevent unexpected file types
  • Configure RLS policies on storage.objects for fine-grained per-user access control
  • Custom metadata is useful for tagging files with application-specific attributes without a separate database lookup