insert into storage.buckets (id, name, public) values ('media', 'media', true) on conflict (id) do nothing; alter table if exists storage.objects enable row level security; drop policy if exists "Public read access for media bucket" on storage.objects; create policy "Public read access for media bucket" on storage.objects for select using (bucket_id = 'media'); drop policy if exists "Authenticated upload to media bucket" on storage.objects; create policy "Authenticated upload to media bucket" on storage.objects for insert with check ( bucket_id = 'media' and auth.role() = 'authenticated' ); drop policy if exists "Authenticated delete media bucket" on storage.objects; create policy "Authenticated delete media bucket" on storage.objects for delete using ( bucket_id = 'media' and auth.role() = 'authenticated' );