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 s3cmdW 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 installPierwsze 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 --configureNajpierw 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 lsAby utworzyć wiadro, użyj polecenia mb:
s3cmd mb s3://test-s3cmd-bucketPamię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-bucketPrzesył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-bucketPonadto możesz użyć parametru --encrypt, aby zaszyfrować plik przed przesłaniem do S3.
s3cmd put --encrypt text.txt s3://test-s3cmd-bucketDomyś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.txtAby pobrać wszystkie pliki z zasobnika, po prostu dołącz parametr --recursive.
s3cmd get --recursive s3://test-s3cmd-bucketUsuwanie plików z zasobnika
Polecenie usuwania dla s3cmd to po prostu del. Na przykład:
s3cmd del s3://test-s3cmd-bucket/text.txtMożesz także użyć parametru --recursive, aby usunąć wszystkie pliki w zasobniku.
s3cmd del --recursive s3://test-s3cmd-bucketAby 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 -e2. 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.





