Keep each user’s files behind a policy
Use auth.uid() = owner_id for owner-only reads, or match the path to the user’s ID for uploads. Policies are written like Postgres row-level security, and storage enforces them on every request.
- Separate rules for SELECT, INSERT, UPDATE and DELETE
- Match the owner, path or file extension
- Multiple policies per operation; any match grants access
# owner-only reads, written as one SQL expressionvolcano cloud storage policy create user-files --name own-read \ --operation SELECT --definition "auth.uid() = owner_id"✓ policy own-readvolcano cloud storage policy list user-filesown-read SELECT · own-write INSERT · own-delete DELETE

