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
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 endpoint „s3.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:
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