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.

pic1

KROK 2.

Uruchomienie.

pic2

KROK 3.

Sposoby użycia.

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

  1. okienkowo wydając polecenia w trybie instant:

pic3

  1. z poziomu konsoli lub w skrypcie:

pic4

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).

pic5

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:

pic6

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 :

pic7

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:

pic8

pic9

Wszystkie opcje tej komendy dostępne są online:

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

Wylistowanie zawartości bucketu

Komenda ls -s

pic10

Usunięcie wybranego elementu

Komenda del <plik do usunięcia> :

pic11

Usunięcie całej zawartości rekursywnie:

pic12

Usunięcie bucketa:

pic13

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.

pic14

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

pic15

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:

pic16

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

pic17

KROK 5.

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

pic18

KROK 6.

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

pic19

KROK 7.

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

pic20

KROK 8.

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

pic21

KROK 9.

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

pic22

KROK 10.

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

pic23

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:

pic24

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:

pic25

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.

pic26

KROK 2

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

pic27

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.

pic28

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