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ń** = - **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/](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](images/Download-S3Express_-Amazon-S3-Command-Line-Utility-and-Backup-Software.png) **KROK 2.** **Uruchomienie.** ![pic2](images/s3-Outlook.png) **KROK 3.** **Sposoby użycia.** Oprogramowania można używać w **dwóch trybach**: 1) okienkowo wydając polecenia w trybie instant: ![pic3](images/s3-image-17.png) 2) z poziomu konsoli lub w skrypcie: ![pic4](images/s3-image-18.png) 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](images/s3-image-19.png) 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](images/s3-image-20.png) 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](images/s3-image-21.png) **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](images/s3-image-22.png) ![pic9](images/s3-image-23.png) Wszystkie opcje tej komendy dostępne są online: [https://www.s3express.com/help/help.html](https://www.s3express.com/help/help.html) **Wylistowanie zawartości bucketu** Komenda ``ls -s`` ![pic10](images/s3-image-24.png) **Usunięcie wybranego elementu** Komenda ``del `` : ![pic11](images/s3-image-25.png) **Usunięcie całej zawartości rekursywnie:** ![pic12](images/s3-image-26.png) **Usunięcie bucketa:** ![pic13](images/s3-image-27.png) **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](images/s3-image-28.png) rclone ---------- Oprogramowanie darmowe, otwarte, dostępne na zasadach licencji MIT [https://pl.wikipedia.org/wiki/Licencja\_MIT](https://pl.wikipedia.org/wiki/Licencja_MIT) Oficjalna strona [https://rclone.org/](https://rclone.org/) **Przygotowanie do pracy, konfiguracja (tu w środowisku Windows)** **KROK 1.** Pobranie oprogramowania ![pic15](images/s3-image-16-29.png) **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](images/s3-image-15-30.png) 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](images/s3-image-14-31.png) **KROK 5.** Należy wybrać innego providera S3 poprzez wpisanie wartości **8**: ![pic18](images/s3-image-13-32.png) **KROK 6.** Należy wybrać **1**, a następnie wpisać dane dostępowe **Access** i **Secret**: ![pic19](images/s3-image-12-33.png) **KROK 7.** Na tym etapie należy wybrać „**other-v2-signature**”, wpisując wartość **2**: ![pic20](images/s3-image-11-34.png) **KROK 8.** Wpisujemy **endpoint** „**s3.cloud.atman.pl** / **s3.atman.pl**”: ![pic21](images/s3-image-10-35.png) **KROK 9.** Przy „**location constraint**” należy zostawić pustą wartość, natomiast przy **acl** wybieramy pożądane prawa dostępu – tu wybieramy wartość **1**. ![pic22](images/s3-image-9-36.png) **KROK 10.** W następnym kroku należy potwierdzić konfigurację, wpisując „**y**”, a w kolejnym opuścić konfigurator, wpisując „**q**”. ![pic23](images/s3-image-8-37.png) 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/](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](images/s3-image-7-38.png) 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](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](images/s3-image-3-39.png) Należy go wyedytować i zmienić następujące parametry: - **access\_key** \= - **secret\_key** \= - **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/](http://s3browser.com/) **KROK 1.** Należy pobrać i zainstalować oprogramowanie. ![pic26](images/s3-image-4-40.png) **KROK 2** Konfiguracja. Należy z menu wybrać **Accounts**, a następnie **Add new account**. ![pic27](images/s3-image-5-41.png) 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](images/s3-image-6-42.png) 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\]:** - **AWS Secret Access Key \[None\]:** - **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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_S3.html)