30 września 2026 · 5 min czytania

Jak upublicznić bucket Cloudflare R2

Buckety R2 są domyślnie prywatne. Nikt nie odczyta pliku bez podpisanych żądań API, dopóki wprost nie nadasz bucketowi publicznego adresu. Można to zrobić na dwa sposoby i oba da się stosować jednocześnie.

Opcja 1: podłącz własną domenę (zalecane)

Własna domena udostępnia bucket przez sieć Cloudflare z pamięcią podręczną i pozwala później użyć reguł WAF lub Cloudflare Access. Domena musi być strefą na tym samym koncie Cloudflare co bucket (działa zarówno pełna konfiguracja, jak i częściowa przez CNAME).

  1. W panelu Cloudflare przejdź do R2 Object Storage i wybierz swój bucket.
  2. Otwórz Settings, znajdź Custom Domains i wybierz Add.
  3. Wpisz subdomenę, np. files.example.com, i wybierz Continue.
  4. Sprawdź rekord DNS, który utworzy Cloudflare, i wybierz Connect Domain.

W ciągu kilku minut status zmieni się z Initializing na Active. Od tej chwili obiekt z kluczem 2026/09/report.pdf jest dostępny pod adresem https://files.example.com/2026/09/report.pdf.

Opcja 2: włącz adres r2.dev (Public Development URL)

Do szybkiego testu R2 może nadać bucketowi adres zarządzany przez Cloudflare:

  1. Otwórz Settings bucketu.
  2. W sekcji Public Development URL wybierz Enable.
  3. Wpisz allow, aby potwierdzić, i wybierz Allow.

Bucket jest teraz dostępny pod adresem https://pub-<id>.r2.dev/<key>. Cloudflare ogranicza przepustowość tego adresu i zaznacza, że służy on do celów deweloperskich, więc zanim zaczniesz szeroko udostępniać linki, przejdź na własną domenę. Kierowanie własnego rekordu CNAME na adres r2.dev nie jest obsługiwane.

Co dostęp publiczny udostępnia, a czego nie

  • Tylko odczyt. Dostęp publiczny pozwala każdemu odczytać obiekty, których klucz zna. Przesyłanie i usuwanie nadal wymagają danych uwierzytelniających API.
  • Bez listowania katalogów. Wejście na główny adres domeny nie wyświetla zawartości bucketu. Losowe nazwy obiektów sprawiają, że linki trudno odgadnąć.
  • Wszystko w buckecie. Dostęp dotyczy całego bucketu, a nie pojedynczych folderów. Prywatne pliki trzymaj w osobnym buckecie.
  • Pamięć podręczna. Domyślnie Cloudflare buforuje tylko pliki z określonymi rozszerzeniami. Dodaj regułę cache, jeśli chcesz buforować pliki każdego typu.

Naprawa błędu Access Denied w linkach R2

Jeśli link zwraca Access Denied, 401 lub 403, sprawdź po kolei:

  1. Link używa Twojej własnej domeny lub adresu r2.dev, a nie <account-id>.r2.cloudflarestorage.com. Ten host to API S3 i zawsze wymaga podpisu.
  2. Własna domena ma status Active, a dostęp do bucketu jest w jego ustawieniach ustawiony na Allowed.
  3. Klucz w adresie URL dokładnie odpowiada obiektowi, łącznie z folderami i wielkością liter.

Częste pytania

Czy upublicznienie bucketu R2 jest bezpieczne?

Tak, dla plików, które chcesz udostępniać. Każdy, kto ma link, może odczytać dany plik, ale nie może wylistować bucketu, niczego przesłać ani usunąć. Prywatne dane trzymaj w innym buckecie.

Czy publiczny bucket R2 kosztuje więcej?

Nie. R2 nie pobiera opłat za transfer wychodzący, więc publiczne pobrania nie zwiększają kosztów przepustowości. Odczyty liczą się jako operacje klasy B, które mają darmowy limit miesięczny.

Czy mogę upublicznić tylko jeden folder?

Nie przez dostęp publiczny R2, który obejmuje cały bucket. Użyj osobnego bucketu albo zostaw bucket prywatny i udostępniaj presigned URL.