AWS CLI¶
AWS CLI jest wygodnym narzędziem do obsługi Cloud4You Object Storage S3 z poziomu terminala.
Za jego pomocą możesz między innymi:
- sprawdzić połączenie z usługą,
- wyświetlać i tworzyć buckety,
- przesyłać i pobierać pliki,
- synchronizować katalogi,
- zarządzać versioningiem,
- wykonywać operacje administracyjne na obiektach.
Parametry Cloud4You Object Storage S3¶
W przykładach na tej stronie używamy:
Instalacja AWS CLI¶
Windows¶
Po instalacji AWS CLI uruchom PowerShell lub Windows Terminal.
Sprawdź wersję:
Przykładowy wynik:
macOS¶
Jeżeli korzystasz z Homebrew:
Następnie:
Linux¶
Po zainstalowaniu AWS CLI sprawdź:
Zalecamy AWS CLI v2
Jeżeli masz możliwość wyboru wersji, zalecamy korzystanie z aktualnej wersji AWS CLI v2.
Utworzenie profilu Cloud4You¶
Uruchom:
Podaj otrzymane dane:
AWS Access Key ID:
<Access Key>
AWS Secret Access Key:
<Secret Key>
Default region name:
eu-pl-1
Default output format:
json
Po zapisaniu możesz używać profilu:
Sprawdzenie konfiguracji profilu¶
Polecenie pokaże między innymi:
- źródło Access Key,
- źródło Secret Key,
- skonfigurowany region.
AWS CLI nie zapisuje endpointu w poleceniu aws configure
Przy korzystaniu z Cloud4You w przykładach dodajemy:
Pierwszy test połączenia¶
Wyświetl listę bucketów:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
--region eu-pl-1 \
s3api list-buckets
Jeżeli konto nie posiada jeszcze bucketów, wynik może wyglądać tak:
Pusta lista to poprawny wynik
Buckets: [] oznacza, że uwierzytelnienie działa, ale użytkownik nie posiada jeszcze żadnego bucketa.
Tworzenie bucketa¶
Przykład:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
--region eu-pl-1 \
s3api create-bucket \
--bucket firma-backup \
--create-bucket-configuration LocationConstraint=eu-pl-1
Zastąp:
własną nazwą bucketa.
Lista bucketów¶
Wersja czytelna:
Wersja API zwracająca JSON:
Lista obiektów w buckecie¶
Rekurencyjnie:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 ls s3://firma-backup/ --recursive
Wysłanie pliku¶
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 cp plik.zip s3://firma-backup/
Możesz również wskazać nazwę obiektu:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 cp plik.zip s3://firma-backup/archiwum/plik.zip
Pobranie pliku¶
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 cp s3://firma-backup/plik.zip .
Pobranie pod inną nazwą:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 cp s3://firma-backup/plik.zip ./plik-pobrany.zip
Kopiowanie katalogu do S3¶
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 cp ./dane/ s3://firma-backup/dane/ --recursive
Pobieranie katalogu z S3¶
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 cp s3://firma-backup/dane/ ./dane/ --recursive
Synchronizacja katalogu do S3¶
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 sync ./dane/ s3://firma-backup/dane/
AWS CLI porówna źródło i cel i prześle brakujące lub zmienione pliki.
Synchronizacja z S3 na komputer¶
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 sync s3://firma-backup/dane/ ./dane/
Synchronizacja z opcją --delete¶
Możliwe jest usuwanie z miejsca docelowego obiektów, których nie ma już w źródle:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 sync ./dane/ s3://firma-backup/dane/ --delete
Uważaj na --delete
Opcja --delete może usunąć dane z miejsca docelowego.
Przed jej użyciem zawsze sprawdź:
- kierunek synchronizacji,
- nazwę bucketa,
- wskazany prefiks,
- lokalny katalog źródłowy.
Test synchronizacji bez zmian¶
Przed większą synchronizacją warto użyć:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 sync ./dane/ s3://firma-backup/dane/ --dryrun
--dryrun pokazuje planowane operacje bez ich wykonywania.
Używaj --dryrun
Szczególnie zalecamy --dryrun przed pierwszym użyciem sync oraz przed użyciem opcji --delete.
Usunięcie pojedynczego obiektu¶
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 rm s3://firma-backup/plik.zip
Usunięcie wielu obiektów¶
Przykład usunięcia całego prefiksu:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 rm s3://firma-backup/test/ --recursive
Operacja destrukcyjna
s3 rm --recursive może usunąć dużą liczbę obiektów.
Przed wykonaniem polecenia dokładnie sprawdź ścieżkę.
Usunięcie pustego bucketa¶
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3api delete-bucket \
--bucket firma-backup
Bucket musi być pusty.
Informacje o obiekcie¶
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3api head-object \
--bucket firma-backup \
--key plik.zip
Polecenie może zwrócić między innymi:
- rozmiar,
- Content-Type,
- ETag,
- datę modyfikacji,
- metadane.
Sprawdzenie dostępu do bucketa¶
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3api head-bucket \
--bucket firma-backup
Jeżeli polecenie kończy się bez błędu, bucket istnieje i użytkownik posiada wymagany dostęp do tej operacji.
Versioning¶
Włączenie:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3api put-bucket-versioning \
--bucket firma-backup \
--versioning-configuration Status=Enabled
Sprawdzenie:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3api get-bucket-versioning \
--bucket firma-backup
Lista wersji:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3api list-object-versions \
--bucket firma-backup
Więcej informacji znajdziesz w sekcji Wersjonowanie obiektów.
Wybór formatu odpowiedzi¶
AWS CLI może zwracać dane w różnych formatach.
JSON:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
--output json \
s3api list-buckets
Tabela:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
--output table \
s3api list-buckets
Tekst:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
--output text \
s3api list-buckets
Tryb debug¶
Jeżeli polecenie nie działa i potrzebujesz dokładniejszych informacji:
Logi debug mogą zawierać informacje techniczne
Przed przesłaniem pełnego logu osobie trzeciej sprawdź jego zawartość.
Nie publikuj Secret Key ani innych danych poufnych.
Najczęstsze problemy¶
InvalidAccessKeyId¶
Sprawdź:
Upewnij się, że korzystasz z właściwego profilu.
SignatureDoesNotMatch¶
Sprawdź:
- Secret Key,
- region
eu-pl-1, - endpoint,
- datę i godzinę systemową.
AccessDenied¶
Użytkownik może nie posiadać uprawnień do wskazanej operacji lub zasobu.
Could not connect to the endpoint URL¶
Sprawdź:
oraz połączenie sieciowe i DNS.
Skracanie poleceń¶
W dokumentacji celowo pokazujemy pełne polecenia zawierające:
Dzięki temu dokładnie widać, z którego profilu i endpointu korzysta polecenie.
W skryptach możesz przechowywać te wartości w zmiennych, ale pamiętaj, aby nie zapisywać Secret Key bezpośrednio w kodzie.
Ścieżki konfiguracji AWS CLI¶
Linux i macOS¶
Standardowo:
Windows¶
Standardowo pliki znajdują się w katalogu profilu użytkownika:
Najczęściej używane polecenia¶
Lista bucketów:
Lista zawartości:
Upload:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 cp plik.zip s3://firma-backup/
Download:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 cp s3://firma-backup/plik.zip .
Synchronizacja:
aws \
--profile cloud4you \
--endpoint-url https://s3.cloud4you.pl \
s3 sync ./dane/ s3://firma-backup/dane/
Usunięcie: