Object storage S3

Sposoby wykorzystania zasobów Object Storage S3.

Wstęp

Protokół S3 stanowi dość popularny sposób komunikacji z obiektową przestrzenią składowania danych, istnieją różnego rodzaju narzędzia i oprogramowanie, które można potencjalnie wykorzystać. Opisy, które podajemy w tym poradniku, mają na celu pokazanie możliwości przy zastosowaniu dwóch wybranych narzędzi. Mamy nadzieję, że będą one dobrym punktem startowym w dalszej pracy z przestrzenią obiektową. W dokumencie podajemy sposób użycia:

/1/ narzędzia S3Express – płatne, 21 dni darmowy trial

/2/ narzędzia rclone – open source, darmowe, licencja MIT Dodatkowo podajemy sposób konfiguracji narzędzia s3cmd – darmowego, bardzo popularnego w środowiskach Linux, oraz okienkowej aplikacji S3 Browser.

Dane dostępowe

Access Key ID = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Secret Key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Endpoint = s3.cloud.atman.pl / s3.atman.pl

Do nawiązania połączenia między klientem a przestrzenią obiektową potrzebne są trzy powyższe informacje. Dane dostępowe będą dostępne z poziomu strony panel.atman.pl.

Limity przestrzeni

Państwa środowisko testowe ma ustawione następujące limity:

Dostępna przestrzeń = <zgodnie z Państwa zamówieniem>

Maksymalna przestrzeń pojedynczego bucketu = Dostępna przestrzeń jak powyżej

Maksymalna liczba bucketów = 1000

Bucket jest nadrzędnym, pierwszym obiektem w drzewiastej strukturze, w której następnie można tworzyć/uploadować inne obiekty (foldery i pliki).

S3Express

S3Express jest użytkowym oprogramowaniem typu command-line przeznaczonym do pracy w środowiskach Windows.

Oficjalna strona: https://www.s3express.com/

Przygotowanie do pracy, konfiguracja

KROK 1.

Instalacja oprogramowania. Ze strony należy pobrać oprogramowanie, a następnie zainstalować je na lokalnej maszynie/serwerze gdzie będzie używane.

KROK 2.

Uruchomienie.

KROK 3.

Sposoby użycia. Oprogramowania można używać w dwóch trybach:

/i/ okienkowo wydając polecenia w trybie instant:

/ii/ z poziomu konsoli lub w skrypcie:

W tym przypadku zostały przekierowane dwie komendy do S3Express: showauth oraz exit.

KROK 4.

Konfiguracja połączenia z Atman Object Storage: Należy wywołać komendę saveauth, podając dane dostępowe Access i Secret oraz nadając własną nazwę dla tego wpisu autoryzacyjnego (tu: atmanobjectstorage).

 

Następnie należy ustawić endpoint na wskazany adres w danych dostępowych (s3.cloud.atman.pl / s3.atman.pl). W tym celu trzeba użyć komendy setopt z flagą –endpoint:

Następnie wprowadzamy polecenia:
/ > setopt -useV4sign:off

/ > setopt -region:waw2

 

S3Express jest już gotowe to komunikacji z Państwa przestrzenią obiektową.

Użytkowanie

Utworzenie bucketu.

Należy wykonać polecenie mkbkt <nazwa>:

Skopiowanie całej struktury wybranego lokalnego folderu

W tym przykładzie na sieciowym dysku H znajdują się przykładowe dwa foldery z kilkoma plikami .txt oraz .ini. Komenda put dokonuje uploadu obiektów na storage obiektowy. Flaga „-s” zapewnia rekursywne kopiowanie (cała struktura), natomiast flaga „-onlydiff” kopiuje tylko inne pliki (rozumiane jako takie, które mają inną wartość MD5). Tu polecenie wykonane z poziomu Windows PowerShell:

 

 

Wszystkie opcje tej komendy dostępne są online:

https://www.s3express.com/help/help.html

Wylistowanie zawartości bucketu

Komenda „ls -s”:

Usunięcie wybranego elementu

Komenda „del <plik do usunięcia>”:

Usunięcie całej zawartości rekursywnie:

Usunięcie bucketa:

Usunięcie plików spełniających kryteria filtru:

Usunięcie z całej zawartości bucketa atman plików z rozszerzeniem .txt. Proszę zwrócić uwagę na flagę „-nonconfirm”, która powoduje, że program nie żąda potwierdzenia usunięcia.

rclone

Oprogramowanie darmowe, otwarte, dostępne na zasadach licencji MIT

https://pl.wikipedia.org/wiki/Licencja_MIT

Oficjalna strona

https://rclone.org/

Przygotowanie do pracy, konfiguracja (tu w środowisku Windows)

KROK 1.

Pobranie oprogramowania

 

KROK 2.

Należy rozpakować pobrany plik .zip.

KROK 3.

W PowerShell należy przejść do folderu z plikami rclone. a następnie uruchomić kreator konfiguracji w następujący sposób:

 

Wpisujemy „n”, co oznacza. że nastąpi konfiguracja nowego remote – zdalnej przestrzeni składowania danych.

Następnie podajemy dowolną nazwę (tu nazwą będzie atman).

KROK 4.

Na tym etapie należy wybrać rodzaj storage’u – wybieramy „Amazon S3 Compliant Storage…” poprzez wpisanie wartości 3

KROK 5.

Należy wybrać innego providera S3 poprzez wpisanie wartości 8:

 

KROK 6.

Należy wybrać 1, a następnie wpisać dane dostępowe Access i Secret:

 

KROK 7.

Na tym etapie należy wybrać „other-v2-signature”, wpisując wartość 2:

 

KROK 8.

Wpisujemy endpoints3.cloud.atman.pl / s3.atman.pl”:

 

KROK 9.

Przy „location constraint” należy zostawić pustą wartość, natomiast przy acl wybieramy pożądane prawa dostępu – tu wybieramy wartość 1.

 

KROK 10.

W następnym kroku należy potwierdzić konfigurację, wpisując „y”, a w kolejnym opuścić konfigurator, wpisując „q”.

 

Plik konfiguracyjny zapisany jest przez rclone w lokalizacji C:Users\.configrclone jako rclone.conf. Jego zawartość można edytować, zmieniając konfigurację.

Narzędzie jest gotowe do użytkowania.

Użytkowanie

Lista komend znajduje się na stronie:

https://rclone.org/commands/

Z poziomu PowerShell komendy wydaje się w sposób następujący:

> .rclone.exe komenda

Przykład komendy tree listującej w formie drzewa zawartość bucketa:

 

Proszę zwrócić uwagę na ciąg „atman:atman”. Pierwszy człon przed dwukropkiem oznacza nazwę konfiguracji wpisaną w KROKU 3. podczas konfiguracji. Drugi człon po dwukropku oznacza nazwę bucketu. Ten sposób odwoływania się do obiektów stosuje się we wszystkich komendach.

s3cmd

Oficjalna strona oprogramowania z listą komend, przykładami użycia:
https://s3tools.org/s3cmd

KROK 1.

Instalacja oprogramowania. Standardowo przy użyciu dostępnego dla danej dystrybucji Linuxa systemu zarządzania pakietami, np.:

apt-get install s3cmd

KROK 2.
Konfiguracja. Po instalacji oprogramowania, w katalogu domowym użytkownika znajduje się ukryty
plik .s3cfg:

Należy go wyedytować i zmienić następujące parametry:
access_key = <tu należy wpisać podany przez atman ciąg znaków>
secret_key = <tu należy wpisać podany przez atman ciąg znaków>
signature_v2 = True
host_base = s3.cloud.atman.pl / s3.atman.pl
host_bucket = %(bucket)s.s3.cloud.atman.pl / s3.atman.pl
website_endpoint = https://%(bucket)s.s3website.cloud.atman.pl

lub wykorzystać polecenie:

s3cmd --configure

Oprogramowanie jest gotowe do użytku.

S3 Browser

Oficjalna strona oprogramowania:
http://s3browser.com/

KROK 1.
Należy pobrać i zainstalować oprogramowanie.

KROK 2
Konfiguracja. Należy z menu wybrać Accounts, a następnie Add new account.

Następnie należy:
– uzupełnić formularz, podając swoją nazwę konta,
– z listy wyboru Account Type wybrać „S3 Compatible Storage”,
– w polu REST Endpoint wpisać s3.cloud.atman.pl / s3.atman.pl,
– z listy wyboru Signature Version wybrać „Signature V2”,
– a na końcu wpisać Access Key i Secret Key.

Narzędzie jest gotowe do pracy.

AWSCLI

 

KROK 1.

Instalacja oprogramowania.

sudo pip3 install awscli

KROK 2.

Konfiguracje programu można wykonać za pomocą polecenia:

aws configure

następnie wypełniamy pola:

AWS Access Key ID [None]: <tu należy wpisać podany przez atman ciąg znaków>
AWS Secret Access Key [None]: <tu należy wpisać podany przez atman ciąg znaków>
Default region name [None]:
Default output format [None]:

Tworzenie bucketa

aws s3api create-bucket --bucket bucket-testowy --endpoint-url https://s3.cloud.atman.pl / https://s3.atman.pl

Kopiowanie plików

aws s3 cp testowy-plik.txt s3://bucket-testowy/testowy-plik.txt --endpoint-url https://s3.cloud.atman.pl / https://s3.atman.pl

Wyświetlanie listy plików

aws s3 ls s3://bucket-testowy --endpoint-url https://s3.cloud.atman.pl / https://s3.atman.pl

Usuwanie plików

aws s3 rm s3://bucket-testowy/testowy-plik2.txt --endpoint-url https://s3.cloud.atman.pl / https://s3.atman.pl

Informacja o zużyciu przestrzeni

s3cmd du s3://przykladowy-bucket

aws s3 ls s3://przykladowy-bucket --recursive --human-readable --summarize

Konfiguracja automatycznego usuwania się multipart’ów

Pobieramy i zapisujemy do pliku aktualną zawartość policy. Jeśli nie mamy żadnych polityk tworzymy własne.

aws s3api get-bucket-lifecycle --bucket bucket-testowy --endpoint-url https://s3.cloud.atman.pl / https://s3.atman.pl > lifecycle.json

Przykład pliku który pozwoli na automatyczne kasowanie się plików multipart po 3 dniach.

{
    "Rules": [
        {
            "ID": "PruneAbandonedMultipartUpload",
            "Status": "Enabled",
            "Prefix": "",
            "AbortIncompleteMultipartUpload": {
                "DaysAfterInitiation": 3
            }
        }
    ]
}

Wprowadzanie pliku z politykami do konfiguracji.

aws s3api put-bucket-lifecycle --bucket bucket-testowy --lifecycle-configuration file:///root/lifecycle.json --endpoint-url https://s3.cloud.atman.pl / https://s3.atman.pl

Podgląd aktualnych polityk:

aws s3api get-bucket-lifecycle --bucket bucket-testowy --endpoint-url https://s3.cloud.atman.pl / https://s3.atman.pl

Więcej na temat tego programu można znaleźć na stronie dostawcy.

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_S3.html