Wyszukiwanie w witrynie

Jak zarządzać Amazon S3 z wiersza poleceń


Amazon S3 to dobre miejsce do taniego tworzenia kopii zapasowych i przechowywania plików w chmurze. Podczas gdy niektórzy ludzie używają go do przechowywania swoich danych osobowych, inni używają go do przechowywania obrazów i skryptów dla swoich stron internetowych, a nawet używają go jako CDN. Na komputerze możesz łatwo uzyskać dostęp do konta Amazon S3 i zarządzać nim za pomocą aplikacji takich jak CloudBerry, DragonDisk itp., ale co, jeśli chcesz uzyskać do niego dostęp z wiersza poleceń? Tutaj przydaje się S3cmd.

S3cmd to bezpłatne narzędzie wiersza poleceń umożliwiające przesyłanie, pobieranie i zarządzanie danymi w Amazon S3. Oprócz S3 obsługuje także innych dostawców usług przechowywania w chmurze korzystających z protokołu S3, takich jak Google Cloud Storage lub DreamHost DreamObjects. Najlepszym zastosowaniem tego narzędzia jest użycie go na zdalnym serwerze, gdzie wszystko odbywa się z wiersza poleceń. Alternatywnie można go również użyć do tworzenia skryptów wsadowych i automatycznego tworzenia kopii zapasowych na S3.

S3cmd jest napisany w języku Python, więc jest obsługiwany we wszystkich systemach operacyjnych, o ile zainstalowany jest język Python.

Instalacja

S3cmd można znaleźć w większości repozytoriów Linuksa. W Debianie/Ubuntu lub dowolnej innej dystrybucji opartej na apt możesz zainstalować S3cmd za pomocą polecenia:

sudo apt-get install s3cmd

W przypadku Fedory, Centos lub dowolnej innej dystrybucji opartej na mniam:

sudo yum install s3cmd

Alternatywnie możesz pobrać kod źródłowy, rozpakować pakiet i uruchomić instalator:

sudo python setup.py install

Pierwsze kroki

Zanim zaczniesz, musisz przygotować klucze dostępu i tajne do Amazon S3. Klucze dostępu i klucze tajne można znaleźć w konsoli zarządzania Amazon.

Aby rozpocząć, otwórz terminal i wpisz:

s3cmd --configure

Najpierw wyświetli się monit o wprowadzenie kluczy dostępu i sekretu.

Następnie należy podać klucz szyfrujący oraz ścieżkę do programu GPG.

Po kluczu szyfrującym pojawia się zachęta do użycia protokołu HTTPS. Domyślna opcja to „Nie”, ale możesz ustawić ją na „Tak”, aby zapewnić bezpieczniejsze połączenie z Amazon S3. Pamiętaj, że korzystanie z protokołu HTTPS spowalnia prędkość transferu i nie można go używać, jeśli korzystasz z serwera proxy.

Po skonfigurowaniu i przetestowaniu ustawień możesz przystąpić do korzystania z S3cmd. Jeśli chcesz zmienić ustawienia, możesz edytować plik .s3cfg w swoim katalogu domowym lub ponownie uruchomić komendę s3cmd --configure.

Stosowanie

Po pierwsze, aby wyświetlić zasobniki na koncie S3, możesz użyć polecenia ls.

s3cmd ls

Aby utworzyć wiadro, użyj polecenia mb:

s3cmd mb s3://test-s3cmd-bucket

Pamiętaj, że będziesz musiał poprzedzić nazwę segmentu „s3://”

Aby wyświetlić zawartość zasobnika, użyj polecenia ls wraz z nazwą zasobnika. Na przykład:

s3cmd ls s3://test-s3cmd-bucket

Przesyłanie pliku do wiadra

Najłatwiejszym sposobem przesłania pliku za pomocą S3cmd jest użycie polecenia put. Na przykład:

s3cmd put text.txt s3://test-s3cmd-bucket

Ponadto możesz użyć parametru --encrypt, aby zaszyfrować plik przed przesłaniem do S3.

s3cmd put --encrypt text.txt s3://test-s3cmd-bucket

Domyślne uprawnienia dla polecenia put są prywatne, co oznacza, że plik może być przeglądany tylko przez Ciebie. Jeśli chcesz, aby plik był publicznie dostępny, możesz dodać parametr --acl-public

s3cmd put --acl-public text.txt s3://test-s3cmd-bucket

Aby uzyskać bardziej szczegółową kontrolę, użyj parametru --acl-grant=PERMISSION:EMAIL lub USER_CANONICAL_ID. Na przykład:

s3cmd put --acl-grant=read:damien@gmail.com text.txt s3://test-s3cmd-bucket

„ZEZWOLENIE” może mieć wartość „odczyt”, „zapis”, „odczyt_acp”, „zapis_acp”, „pełna_kontrola”, „wszystko”.

Pobieranie plików z wiadra

Aby pobrać plik, użyj polecenia get.

s3cmd get s3://test-s3cmd-bucket/text.txt text.txt

Aby pobrać wszystkie pliki z zasobnika, po prostu dołącz parametr --recursive.

s3cmd get --recursive s3://test-s3cmd-bucket

Usuwanie plików z zasobnika

Polecenie usuwania dla s3cmd to po prostu del. Na przykład:

s3cmd del s3://test-s3cmd-bucket/text.txt

Możesz także użyć parametru --recursive, aby usunąć wszystkie pliki w zasobniku.

s3cmd del --recursive s3://test-s3cmd-bucket

Aby uzyskać więcej poleceń S3cmd, zapoznaj się z jego przewodnikiem użytkowania tutaj.

Zaawansowane użycie: Synchronizuj folder z S3

Załóżmy, że przechowujesz wszystkie ważne pliki w folderze i chcesz, aby zostały zsynchronizowane z S3. S3cmd zawiera polecenie sync, które umożliwia synchronizację folderu lokalnego ze zdalnym miejscem docelowym.

s3cmd sync --delete-removed ~/SecretFolder s3://my-secret-bucket/

Wszystko, co musisz zrobić, to utworzyć zadanie cron, aby regularnie uruchamiać polecenie synchronizacji.

1. Otwórz plik crontab.

crontab -e

2. Dodaj następujący wiersz na końcu pliku crontab. Zapisz i wyjdź z crontaba.

5 * * * * s3cmd sync --delete-removed ~/SecretFolder s3://my-secret-bucket/

Otóż to. Twój system będzie teraz synchronizował tajny folder z S3 co 5 minut. Możesz zmienić tę wartość, aby uruchamiać polecenie synchronizacji w preferowanym odstępie czasu. Każdy plik usunięty z tajnego folderu zostanie również usunięty z S3.

Wniosek

Dla tych, którzy muszą pracować w środowisku wiersza poleceń, S3cmd jest naprawdę doskonałym narzędziem umożliwiającym dostęp i zarządzanie Amazon S3 z wiersza poleceń. Jest nie tylko łatwy w użyciu, ale także oferuje wiele opcji dla zaawansowanych zastosowań i potrzeb związanych z tworzeniem skryptów.

Powiązane artykuły