# Podstawowe pojęcia

# Projekt

Jest podstawową jednostką własności zasobów. Projekty to przestrzenie przypisane do poszczególnych kont w Oktawave. W nich tworzone są kontenery. Rozróżniamy projekty oparte o technologię:

  • Keystone v3:

    • dostępne dla wszystkich zarejestrowanych kont w Oktawave,
    • wykorzystuje tych samych użytkowników co przy logowaniu do Panelu Admina,
    • ciągle rozwijany protokół z możliwością wielu integracji,
    • możliwość zarządzania użytkownikami i ich uprawnieniami poprzez API,
    • nowocześniejsze, rekomendowane rozwiązanie.
  • Swauth:

    • dostępne wyłącznie dla kont założonych przed 2019 rokiem,
    • do logowania używani są dodatkowi użytkownicy konfigurowani wyłącznie w ID Serwerze,
    • starsze, nierozwijane już rozwiązanie.

# Kontener

Definiuje przestrzeń nazw dla plików w nim zawartych. To w nim przechowywane są obiekty. Na swoim koncie możesz posiadać dowolną ilość kontenerów o unikalnych nazwach. W ramach poszczególnych kontenerów nadasz uprawnienia do wyświetlania, zapisu i listowania obiektów.

# Obiekt

Podstawowa jednostka opisująca przechowywane dane. Może być to plik w dowolnym formacie. Posiada dane, metadane oraz unikalny identyfikator. Zawsze przypisany jest do jednego kontenera. Raz zapisany obiekt nie może zostać później zmieniony - w OCS nie istnieje kopiowanie.

# Pseudo-katalog

Pseudo-katalogi służą do symulowania hierarchicznej struktury w kontenerze poprzez dodanie ukośnika "/" w nazwie, np. "kontener/pseudo_katalog/obraz.png".
Więcej przeczytasz w oficjalnej dokumentacji (opens new window).

# Access Control Lists (ACLs)

Mechanizm pozwalający na zarządzanie uprawnieniami dla poszczególnych użytkowników lub kontenerów. Dzięki temu rozwiązaniu ograniczasz dostęp do plików tylko dla wybranych użytkowników lub udostępniasz je wszystkim publicznie.

Szczegółowe informacje w temacie zarządzania uprawnieniami znajdziesz tutaj (opens new window).

# REST API

Jest to interfejs programistyczny dla protokołu HTTP. API OCS jest w pełni zgodne ze Swift Object Storage z pakietu OpenStack. Różni się jedynie nieco metodami autoryzacji do usługi. Oznacza to, że w większości przypadków można korzystać z OCS wykorzystując do tego identyczną składnię zapytań, te same aplikacje oraz gotowe, dostępne na rynku narzędzia.

# Autoryzacja

Poprzez autoryzację należy rozumieć proces uzyskiwania dostępu do przestrzeni OCS za pomocą nazwy użytkownika i hasła. Dostępne są dwie metody autoryzacji korzystające z oddzielnych userów.

# Segmentacja plików

Maksymalna wielkość pojedynczego obiektu jaki może być przechowywany w OCS wynosi 5GB i jest to podyktowane ograniczeniami Swifta. Większe pliki dzielone są na segmenty oraz utworzony zostaje także specjalny plik manifestu. Plik ten spaja podzielone części i pozwala na pobieranie całego, niepodzielonego pliku. Segmentacja dodatkowo zapewnia znacznie większą prędkość wysyłania z możliwością równoległego przesyłania segmentów.
Więcej o segmentacji plików możesz przeczytać również w dokumentacji (opens new window).

# Listowanie z markerami

W związku z wbudowanymi ograniczeniami Swifta, maksymalna ilość listowanych plików w pojedynczym kontenerze wynosi 10 000 elementów. Aby zobaczyć kolejne pliki, które znajdują się w kontenerze, albo przeprowadzać na nich jakieś operacje należy skorzystać z marker-owania.

Więcej szczegółów pod linkiem (opens new window).