WebDisk
Object Storage

Object Storage w WebDisk: bucket, obiekt, klucz – i co z tego masz w praktyce

Data publikacji:

Blog WebDisk · kategoria: Chmura obliczeniowa · czas czytania: ~9 minut

W skrócie:- Object storage trzyma dane jako obiekty w bucketach – nie jako bloki dysku ani drzewo katalogów. Każdy obiekt ma swój klucz, a rozmawia się z nim po HTTP, jak ze stroną internetową.- Sprawdza się tam, gdzie plik zapisuje się raz, a czyta wiele razy: backup, archiwa, media, pliki statyczne, wspólna przestrzeń dla aplikacji. Nie zastąpi dysku pod bazę danych.- S3 jest dziś faktycznym standardem komunikacji z takim magazynem – te same narzędzia (aws, s3cmd, rclone) i te same biblioteki działają u nas i u innych dostawców. >Nie pracujesz z terminalem? Bloki poleceń możesz spokojnie pominąć – reszta artykułu czyta się bez nich.

Firmowy dysk sieciowy zapełnia się szybciej, niż ktokolwiek planował. Kamery z monitoringu produkują nagrania, których nikt nie ogląda, ale których nie wolno skasować. Aplikacja działa w trzech kopiach i każda musi widzieć te same pliki.

Wszystkie te problemy mają wspólny mianownik: dane, których jest dużo, które rosną nieprzewidywalnie i które muszą być dostępne z wielu miejsc naraz. Klasyczny dysk w serwerze radzi sobie z tym coraz gorzej z każdym dołożonym terabajtem. Object storage powstał po to, żeby ten scenariusz przestał być problemem.

W tym artykule tłumaczymy, czym magazyn obiektowy różni się od dysku i od udziału sieciowego, jak rozumieć trzy pojęcia, wokół których wszystko się kręci (bucket, obiekt, klucz), do czego S3 nadaje się naprawdę – a do czego nie – i jak zacząć z nim pracować w praktyce. Na końcu opisujemy, co z tego oferujemy w WebDisk.

Czym różni się magazyn blokowy, plikowy i obiektowy?

Magazyn blokowy to najniższy poziom: dysk (fizyczny albo sieciowy wolumen) udostępnia systemowi operacyjnemu surowe bloki, a dopiero system plików nadaje im sens. Zaleta: najmniejsze opóźnienia i pełna swoboda modyfikacji – można nadpisać dowolne 512 bajtów w środku pliku. Wada: wolumen jest zwykle przypisany do jednej maszyny.

Magazyn plikowy to udział sieciowy (NFS, SMB): hierarchia katalogów, uprawnienia, blokady plików, wielu klientów naraz. Kłopot pojawia się przy skali – drzewo z dziesiątkami milionów plików staje się kosztowne w obsłudze, a serwer plików bywa wąskim gardłem.

Magazyn obiektowy rezygnuje z hierarchii i z modyfikacji w miejscu. Plik trafia do magazynu jako obiekt: treść plus metadane plus unikalny klucz. Chcesz go zmienić? Zapisujesz obiekt na nowo, w całości. W zamian dostajesz trzy rzeczy, których dwa poprzednie modele nie dają tak łatwo: praktycznie liniową skalowalność, dostęp po zwykłym HTTP z dowolnego miejsca i wbudowaną redundancję po stronie klastra.

  • Jednostka – Blokowy: blok · Plikowy: plik w katalogu · Obiektowy: obiekt w buckecie
  • Dostęp – Blokowy: sterownik dysku · Plikowy: protokół sieciowy (NFS/SMB) · Obiektowy: HTTP (API S3)
  • Modyfikacja fragmentu – Blokowy: tak · Plikowy: tak · Obiektowy: nie – zapis całego obiektu
  • Typowy klient – Blokowy: jedna maszyna · Plikowy: wiele maszyn w LAN · Obiektowy: dowolna aplikacja w internecie
  • Naturalne zastosowanie – Blokowy: baza danych, system operacyjny · Plikowy: wspólne dokumenty, katalogi domowe · Obiektowy: backup, media, archiwa, dane aplikacji

To nie są konkurenci, tylko trzy warstwy tego samego pudełka z narzędziami.

Co to jest bucket, obiekt i klucz w S3?

Bucket (dosłownie „kubełek”) to kontener na obiekty – odpowiednik dysku albo udziału sieciowego. Nazwa bucketa musi być unikalna w obrębie platformy, bo staje się częścią adresu. To na poziomie bucketa ustawia się większość rzeczy, które mają znaczenie: kto ma dostęp, czy dane są szyfrowane, jak długo żyją.

Obiekt to pojedynczy zapisany byt: treść pliku, jego metadane (typ MIME, data, własne nagłówki) i identyfikator wersji, jeśli bucket ma włączone wersjonowanie.

Klucz (key) to pełna nazwa obiektu w buckecie – i tu kryje się najczęstsze nieporozumienie. Przestrzeń nazw w S3 jest płaska: nie ma katalogów, jest jeden długi ciąg znaków. Klucz 2026/07/faktury/FV-118.pdf nie oznacza trzech zagnieżdżonych folderów, tylko jedną nazwę zawierającą ukośniki. Narzędzia rysują z tego drzewo dla Twojej wygody, pytając serwer o obiekty zaczynające się od danego prefiksu.

Konsekwencja jest praktyczna: „przeniesienie katalogu” w S3 to w rzeczywistości skopiowanie i skasowanie każdego obiektu z osobna. Warto o tym pamiętać, planując strukturę kluczy – dobrze zaprojektowany prefiks (data, klient, typ danych) ułatwia potem i wyszukiwanie, i polityki dostępu, i reguły czyszczenia.

Do czego nadaje się object storage, a do czego nie?

Backup i archiwum. To dziś domyślny cel kopii zapasowych – wszystkie liczące się systemy backupowe potrafią pisać wprost do S3. Kopia leży poza serwerem, który zabezpiecza, jest dostępna po sieci i nie wymaga utrzymywania biblioteki taśmowej. Szerzej piszemy o tym w artykule Backup w chmurze – fundament bezpieczeństwa IT.

Media i pliki statyczne. Zdjęcia, wideo, PDF-y, załączniki. Aplikacja nie musi ich przepuszczać przez siebie – może odesłać użytkownika prosto do magazynu, zdejmując z własnych serwerów cały ruch pobierania.

Statyczna strona lub dokumentacja. Bucket z publicznym odczytem serwuje HTML, CSS i obrazki bez żadnego serwera aplikacyjnego. Rozwiązanie tanie, odporne i praktycznie bezobsługowe. Jedno zastrzeżenie: pełny hosting witryny – z dokumentem indeksu, stroną błędu i własną domeną – wymaga trybu website po stronie dostawcy; sam publiczny odczyt wystarczy do serwowania plików, na przykład obrazków i plików do pobrania.

Wspólna przestrzeń dla aplikacji. To scenariusz, w którym object storage naprawdę błyszczy. Kilka instancji tej samej aplikacji – na maszynach wirtualnych albo w podach Kubernetesa – widzi ten sam bucket i te same pliki, bez współdzielonego wolumenu i bez zastanawiania się, na którym węźle wylądował upload. Jedno urządzenie albo proces wrzuca dane, inny je odbiera i przetwarza.

Czego object storage nie zastąpi: dysku pod bazę danych, systemu plików dla aplikacji, która modyfikuje pliki w miejscu, ani magazynu wymagającego opóźnień rzędu mikrosekund. Każda operacja to żądanie HTTP – świetnie znosi równoległość i duże obiekty, ale pojedynczy zapis nigdy nie będzie tak szybki jak zapis na lokalnym NVMe. Nie ma też sensu wrzucać do S3 milionów maleńkich plików bez pomyślunku: narzut na żądanie potrafi wtedy przeważyć nad kosztem samych danych.

Pierwszy bucket: trzy narzędzia, ta sama historia

Do pracy z S3 potrzebujesz trzech rzeczy: adresu endpointu dostawcy, klucza dostępowego (access key) i sekretu (secret key). Poniższe przykłady używają naszego publicznego endpointu https://s3.dco.webdisk.io – u innego dostawcy podmień adres i wszystko zadziała tak samo. To zresztą jedna z głównych zalet standardu S3: zmiana dostawcy nie oznacza przepisywania integracji, o czym pisaliśmy przy okazji uzależnienia od dostawcy.

Jedna rzecz, o której warto wiedzieć od razu: adres bucketa można składać na dwa sposoby – ścieżkowo (endpoint/bucket) albo przez nazwę hosta (bucket.endpoint). Domyślne ustawienia klientów bywają różne, dlatego w przykładach niżej wskazujemy adresowanie ścieżkowe wprost.

s3cmd – najprostszy start, wygodny do ręcznych operacji:

s3cmd --configure # access key, secret key, host: s3.dco.webdisk.io
                           # host_bucket: s3.dco.webdisk.io/%(bucket)s

s3cmd mb s3://firma-archiwum # utwórz bucket
s3cmd put raport.pdf s3://firma-archiwum/2026/ # wgraj plik
s3cmd ls s3://firma-archiwum/2026/ # wylistuj prefiks
s3cmd get s3://firma-archiwum/2026/raport.pdf # pobierz
s3cmd du s3://firma-archiwum # ile to zajmuje

aws CLI – oficjalny klient AWS, działa z każdym magazynem zgodnym z S3:

aws configure # access key, secret key, region: np. us-east-1
aws configure set default.s3.addressing_style path # adresowanie ścieżkowe

# endpoint podajesz przy poleceniu…
aws --endpoint-url https://s3.dco.webdisk.io s3 ls

# …albo raz, zmienną środowiskową (aws CLI v2 od wersji 2.13)
export AWS_ENDPOINT_URL=https://s3.dco.webdisk.io

aws s3 mb s3://firma-archiwum
aws s3 cp ./raporty s3://firma-archiwum/2026/ --recursive
aws s3api head-object --bucket firma-archiwum --key 2026/raport.pdf

rclone – najlepszy do synchronizacji katalogów i przenoszenia danych między dostawcami:

rclone config # typ: s3, provider: Ceph, endpoint jak wyżej
                           # profil Ceph sam ustawia adresowanie ścieżkowe

# kopiuj przyrostowo: przechodzi tylko to, co się zmieniło
rclone copy /srv/dane webdisk:firma-archiwum/dane --progress

# uwaga: sync USUWA w miejscu docelowym pliki, których nie ma w źródle
rclone sync /srv/dane webdisk:firma-archiwum/dane --dry-run

Zasada, która oszczędza nerwów: rclone sync uruchamiaj najpierw z --dry-run i dopiero po obejrzeniu listy zmian bez tego przełącznika.

Jak kontrolować dostęp do bucketa: polityki i presigned URL

Domyślnie bucket jest prywatny – widzi go tylko właściciel kluczy. Dostęp otwiera się świadomie, na dwa sposoby.

Polityka bucketa to dokument JSON opisujący, komu i na co pozwalamy. Klasyczny przykład – bucket serwujący pliki statyczne, z publicznym odczytem obiektów i prywatnym zapisem:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "PublicRead",
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::moja-strona/*"
  }]
}

aws s3api put-bucket-policy --bucket moja-strona --policy file://polityka.json

Zwróć uwagę na Resource z gwiazdką: polityka dotyczy obiektów w buckecie, a nie samego bucketa. Zamiana arn:aws:s3:::moja-strona/* na arn:aws:s3:::moja-strona to najczęstszy błąd początkujących – nagle nic nie działa albo, gorzej, działa za dużo.

Presigned URL rozwiązuje inny problem: „chcę dać jednej osobie jeden plik, na godzinę, bez zakładania jej konta”. To zwykły link do obiektu z doklejonym podpisem i datą wygaśnięcia. Kto ma link, ten pobierze plik; po upływie czasu link staje się bezużyteczny, a sam bucket pozostaje prywatny:

# link ważny godzinę (3600 sekund)
aws s3 presign s3://firma-archiwum/2026/raport.pdf --expires-in 3600

Presigned URL działa też w drugą stronę – aplikacja może wygenerować link uprawniający do wgrania pliku, dzięki czemu przeglądarka użytkownika wysyła plik prosto do magazynu, z pominięciem serwera aplikacji. Warto tylko pamiętać, że taki link jest sekretem: kto go przechwyci, ten ma dostęp do obiektu przez cały okres ważności. Dlatego terminy ustawia się krótkie, a linków nie wysyła się kanałami, których się nie kontroluje.

Trzeci mechanizm – poświadczenia tymczasowe (STS) – zastępuje stałe klucze przepustką ważną godzinę i wydawaną na podstawie firmowego logowania. Opisaliśmy go szczegółowo w artykule o dostępie do S3 kontem firmowym (STS + SSO). Osobny tekst poświęciliśmy też wariantom szyfrowania danych w spoczynku (SSE-S3, SSE-KMS, SSE-C) – warto o nich rozmawiać przy każdym wdrożeniu.

Co object storage daje, a czego nie daje?

Object storage daje: skalowanie bez planowania pojemności z góry, dostęp po HTTP z dowolnego miejsca, standard, który przenosisz między dostawcami, rozliczenie za wykupioną przestrzeń, powiększaną bez migracji danych, i naturalne miejsce na dane, których nie chcesz trzymać na produkcyjnym serwerze.

Object storage nie daje: semantyki systemu plików (brak modyfikacji w miejscu, brak blokad, brak prawdziwych katalogów), opóźnień na poziomie dysku lokalnego, automatycznej ochrony przed skasowaniem – jeśli chcesz przetrwać pomyłkę użytkownika albo ransomware, potrzebujesz wersjonowania i niezmienności obiektów (Object Lock), a te trzeba świadomie włączyć. Samo szyfrowanie w spoczynku też nie chroni przed wyciekiem kluczy dostępowych: kto ma ważne poświadczenia, ten dostaje dane odszyfrowane. Bezpieczeństwo to zawsze suma warstw, nie jeden przełącznik.

Jak to wygląda w WebDisk

Nasza platforma obiektowa działa na Ceph i jego bramie S3 (RADOS Gateway) – otwartym oprogramowaniu używanym przez wielu dostawców chmury. To nie jest detal marketingowy: oznacza, że rozmawiasz z nami tym samym API, którym rozmawiasz z AWS, i tymi samymi klientami – s3cmd, awscli, boto3, rclone, wtyczki w systemach backupowych.

Publiczny endpoint to https://s3.dco.webdisk.io. Magazyn jest zestrojony pod koszt przechowywania dużych zbiorów – archiwów, kopii zapasowych i mediów. Bucket można zaszyfrować po stronie serwera (opcja przy jego zakładaniu, permanentna). Wersjonowanie i niezmienność obiektów (Object Lock) są dostępne – niezmienność włącza się przy zakładaniu magazynu i jest decyzją jednokierunkową. Logowanie do S3 kontem firmowym (STS) przygotowujemy jako osobną usługę – sam mechanizm opisaliśmy w podlinkowanym wyżej artykule. Magazyn zamawia się w panelu, a przestrzeń dokupuje w miarę potrzeb. Aktualny zakres funkcji i cennik znajdziesz na stronie usługi Object Storage – a jeśli zastanawiasz się, gdzie fizycznie leżą Twoje dane, pisaliśmy o tym w tekście o polskiej chmurze obliczeniowej.

Częste pytania

Czy muszę być programistą, żeby korzystać z S3?

Nie. Do ręcznej pracy wystarczą klienci graficzni (np. Cyberduck, WinSCP, S3 Browser) albo rclone w trybie synchronizacji katalogu. Terminal jest wygodny, ale nie obowiązkowy.

Czym różni się bucket od dysku sieciowego?

Przede wszystkim brakiem systemu plików. Do bucketa nie zamapujesz litery dysku i nie otworzysz w nim pliku do edycji w miejscu – obiekty pobiera się i odsyła w całości. W zamian bucket jest dostępny z dowolnego miejsca w internecie, a pojemność zwiększasz, dokupując kolejne pakiety – bez przenoszenia danych i bez przestoju.

Czy w S3 istnieją katalogi i foldery?

Nie – przestrzeń nazw w buckecie jest płaska. Ukośniki w kluczu obiektu (np. 2026/07/raport.pdf) to część nazwy, a nie zagnieżdżone foldery; narzędzia rysują drzewo katalogów z prefiksów dla Twojej wygody. Dlatego „przeniesienie katalogu” to w praktyce skopiowanie i skasowanie każdego obiektu z osobna.

Czy dane w buckecie są bezpieczne, jeśli ktoś skasuje plik?

Tylko wtedy, gdy włączysz wersjonowanie albo blokadę niezmienności. Domyślnie skasowany obiekt znika. To ta sama zasada co przy każdym innym magazynie: kopia zapasowa i retencja to osobna decyzja, nie właściwość wbudowana.

Jak przenieść kilka terabajtów od innego dostawcy?

Najprościej rclone z konfiguracją dwóch zdalnych magazynów – kopiuje między nimi bezpośrednio i wznawia przerwany transfer. Przy dużych zbiorach warto podnieść równoległość (--transfers) i przenosić dane prefiksami.

Czy S3 nadaje się na dane, do których sięgam raz w roku?

Tak – i to jeden z najlepszych scenariuszy. Archiwum w magazynie obiektowym kosztuje niewiele, a dane pozostają dostępne od ręki, bez odtwarzania z taśmy.

Podsumowanie

Object storage nie jest „lepszym dyskiem” – jest innym narzędziem, zaprojektowanym pod inny wzorzec użycia: zapisz raz, czytaj wiele razy, z wielu miejsc, w skali, której nie chcesz planować z góry. Gdy ten wzorzec pasuje do Twoich danych, S3 upraszcza architekturę bardziej niż jakikolwiek dokładany serwer plików. Gdy nie pasuje – lepiej to wiedzieć, zanim aplikacja zacznie walczyć z magazynem.

Masz konkretny przypadek i nie wiesz, czy S3 jest właściwym wyborem – albo chcesz po prostu spróbować? Napisz do nas: przejdziemy przez niego razem, pomożemy dobrać konfigurację i wydamy dostęp do bucketa.

Object storage i S3: bucket, obiekt, klucz w praktyce | WebDisk