---
title: "Supabase verejný bucket: kto prečíta vaše súbory"
description: "Čo zmení verejný bucket v Supabase Storage, čo nie, čo vrátil môj lokálny test pri verejnom a súkromnom bucketu a kedy použiť ktorý."
url: "https://madsalt.tech/sk/notes/supabase-public-bucket/"
author: "Denys Zaichenko"
author_url: "https://madsalt.tech/sk/about/"
language: "sk"
published: 2026-11-04
---

# Supabase verejný bucket: kto prečíta vaše súbory

TL;DR

Verejný bucket servíruje každý súbor v ňom komukoľvek, kto pozná URL, bez kľúča a bez prihlásenia: vaše politiky storage sa pri sťahovaní nekonzultujú. Na mojom lokálnom stacku vrátil rovnaký testovací súbor `200` s obsahom z verejného bucketu a `400` zo súkromného. Nahrávanie, mazanie a presúvanie stále prechádzajú politikami. Verejné buckety používajte pre súbory, ktoré sú verejné zo svojej podstaty, napríklad avatary a obrázky článkov, a pre všetko ostatné súkromné buckety s podpísanými URL.

Môj bezplatný [bezpečnostný checker pre Supabase](https://madsalt.tech/sk/tools/supabase-security-check/) má dve pravidlá o bucketoch: „Verejné buckety v Storage“ ich vypíše, aby ste si potvrdili, že každý má byť verejný, a „Verejné buckety bez limitov nahrávania“ hlási verejné buckety bez limitu veľkosti alebo typu súboru. Tu je, čo verejný príznak naozaj mení.

## Čo v Supabase znamená verejný bucket?

[Sprievodca bucketmi](https://supabase.com/docs/guides/storage/buckets/fundamentals) od Supabase definuje dva modely prístupu. V súkromnom buckete prechádza každá operácia, vrátane sťahovania, politikami RLS na `storage.objects`; súbor sa číta s tokenom používateľa alebo s podpísaným URL, ktorého platnosť vyprší. Vo verejnom buckete načítavanie a servírovanie súborov kontrolu prístupu obchádza, takže súbor prečíta ktokoľvek s URL. Kontrola prístupu stále platí pre nahrávanie, mazanie, presúvanie a kopírovanie.

Buckety sú v predvolenom stave súkromné. Verejným sa bucket stane, keď niekto zaškrtne políčko v Dashboarde alebo ho vytvorí s `public: true`, čo je častá skratka, keď sa nenačíta obrázok.

## Čo vrátil ktorý bucket v mojom teste?

Na lokálnom stacku Supabase (CLI 2.109.1) som vytvoril jeden verejný a jeden súkromný bucket, nahral do oboch rovnaký malý textový súbor pomocou secret key a potom si ho vyžiadal bez akéhokoľvek kľúča, ako cudzí človek s odkazom:

![Ten istý súbor, vyžiadaný bez kľúča. Lokálny Supabase Storage, jeden verejný a jeden súkromný bucket. Verejný bucket: Požiadavka, bez kľúča → verejný bucket → 200, súbor odoslaný; Súkromný bucket: Požiadavka, bez kľúča → súkromný bucket → 400, nenájdené.](https://madsalt.tech/charts/sk/supabase-public-bucket.svg)

*Moja reprodukcia na lokálnom Supabase, 23. októbra 2026.*

| Požiadavka na `2026/invoice-001.txt`                      | Verejný bucket      | Súkromný bucket           |
| --------------------------------------------------------- | ------------------- | ------------------------- |
| `/storage/v1/object/public/…`, bez kľúča                  | `200`, obsah súboru | `400`, „Bucket not found“ |
| `/storage/v1/object/authenticated/…`, iba publishable key | `200`               | `400`                     |

Súkromný bucket odpovedá, akoby neexistoval, čo chcete. Verejný vydá súbor každému, kto cestu uhádne alebo nájde.

## Prečo na URL tak záleží?

Verejný súbor je tajný iba tak, ako je tajná jeho cesta. Cesty bývajú predvídateľné: id používateľa, dátum, číslo faktúry. Uniknú aj zo zdroja stránky, zo zdieľaných odkazov, z histórie prehliadača a z logov. Faktúra, sken pasu alebo podpísaná zmluva vo verejnom buckete je prakticky zverejnená.

## Ako vybrať a opraviť?

- **Verejný bucket:** súbory pre všetkých, napríklad avatary, fotky produktov a obrázky na blogu. Nastavte na buckete limit veľkosti súboru a povolené typy MIME, aby verejnú cestu na nahrávanie, ktorú vaše politiky povolia, nešlo využiť na hosťovanie čohokoľvek iného.
- **Súkromný bucket:** dokumenty, exporty, faktúry, čokoľvek osobné. Sťahujte so session používateľa alebo vytvorte podpísané URL s obmedzenou platnosťou.

Prehľad bucketov a ich limitov:

```sql
select id, public, file_size_limit, allowed_mime_types
from storage.buckets
order by public desc, id;
```

Súkromný bucket potrebuje aj politiky na `storage.objects`, zvyčajne kontrolujúce, že prvý priečinok cesty je id používateľa alebo firmy. Po presune projektu tie politiky spočítajte: pri jednej aplikácii zlyhalo každé nahratie, pretože migrácia politík nikdy nebežala, čo som popísal v [checkliste bezpečnosti aplikácie z Lovable](https://madsalt.tech/sk/blog/lovable-app-security-checklist/). Čo ďalšie dosiahne publishable key, je v článku [Supabase anon key vs service role key](https://madsalt.tech/sk/blog/supabase-anon-key-vs-service-role-key/).
