Obsah

Nástroj AWS CLI pro příkazovou řádku

Klient AWS CLI je standardní nástroj podporující práci přes s3 rozhraní. Klient je napsaný v pythonu.

Instalace AWS CLI

Pro instalaci nástroje AWS CLI doporučujeme využít oficiální stránky AWS, kde naleznete podrobný návod na instalaci jak pro Linux, tak pro Windows.

Pokud potřebujete nainstalovat AWS CLI ve virtuálním prostředí můžete využít tento návod.

Konfigurace AWS CLI

Pro konfiguraci AWS CLI doporučujeme použít volbu --profile, která vám umožní definovat více uživatelských profilů, například pro vás a servisní identitu. Můžete však použít rovněž výchozí nastavení (bez volby --profile). Všechny příkazy pak budou shodné, jen nebudou obsahovat volbu --profile a použije se výchozí nastavení.

Dále provedeme konfiguraci AWS CLI. Následující přiklady využívají konfiguraci s použitím volby --profile.

Při vyplňování následující konfigurace je nutné u volby Default region name vložit us-east-1. Bez použití „us-east-1“ nedojde k úspěšnému ověření regionu nástrojem awscli a při použití aws s3 byste dostávali chybu upozorňující na Invalid region: region was not a valid DNS name..
aws configure --profile test_user
AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Default region name [None]: us-east-1
Default output format [None]: text

AWS Access Key ID - access key, který jste obdrželi během tvorby vašeho S3 účtu
Secret Access Key - secret key, který jste obdrželi během tvorby vašeho S3 účtu
Default region name - prefix pro servery, na které budete zasílat vaše požadavky, Zde vyplníme „us-east-1“!
Default output format - výstupní formát dat (json, text, table)

Pro správnou funkčnost je nezbytné u všech příkazů používat volbu --endpoint-url pro příslušné adresy S3 služeb provozovaných sdružením CESNET.
Multipartové uploady do S3 - maximální velikost souboru pro upload je omezena na 5 GB. Nástroj aws s3 provádí automaticky u větších souborů multipartový upload a download. Nástroj aws s3api provádí multiparotvý upload pouze s použitím přepínače create-multipart-upload. Doporučujeme tedy přednostně používat nástroj aws s3 pro upload/download velkých souborů. Detailní informace jsou uvedeny na webových stránkách aws.

Ovládání AWS CLI - high-level (s3)

Pro zobrazení plné nápovědy (dostupných příkazů) můžeme využít help. Nástroj aws s3 umužňuje využít některé pokročilé funkcionality, viz níže.

aws s3 help

Práce s buckety

Práce s buckety

Jméno bucketu musí být unikátní a mělo by obsahovat pouze malá písmena, čísla a pomlčky a tečky. Název bucketu musí začínat pouze písmenem nebo číslem a nesmí obsahovat tečky vedle pomlček nebo více teček. Dále doporučujeme nepoužívat „/“ v názvu, protože by to znemožnilo jeho použití přes API.

Výroba bucketu

aws s3 --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz mb s3://test1

Vylistování bucketů

aws s3 --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz ls
2019-09-18 13:30:17 test1

Odstranění bucketu

aws s3  --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz rb s3://test1


Práce se soubory

Práce se soubory

Soubory
Upload souboru

aws s3 --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz cp C:/Users/User/Desktop/test_file.zip s3://test1
upload: Desktop\test_file.zip to s3://test1/test_file.zip

Download souboru

$ aws s3 --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz cp s3://test1/test_file.zip C:\Users\User\Downloads\
download: s3://test1/test_file.zip to Downloads\test_file.zip

Smazání souboru

$ aws s3 --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz rm s3://test1/test_file.zip 
delete: s3://test1/test_file.zip


Práce s adresáři

Práce s adresáři

Adresáře
Upload adresáře

Při použití tohoto příkazu dochází vždy k synchrnonizaci obsahu zdrojového adresáře, nezávisle na tom, zda na konci zdrojové cesty NEpoužijete lomítko. Chování rclone je v tomto ohledu odlišné od chování rsync. Pokud chcete na cílové straně vyrobit adresář, stačí jeho název přidat do cílové cesty. Nástroj aws jej při kopírování vytvoří, viz příklad níže. To samé platí i pro download adresářů, případně synchronizaci.
aws s3 --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz cp C:\Users\User\Desktop\test_dir  s3://test1/test_dir/ --recursive

Download adresáře

aws s3 --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz cp s3://test1/test_dir C:\Users\User\Downloads\test_dir\ --recursive

Smazání adresáře

aws s3 --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz rm s3://test1/test_dir --recursive

Synchronizace adresářů
Synchronizace adresáře na úložiště pomocí s3

aws s3 --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz sync C:\Users\User\Desktop\test_sync  s3://test1/test_sync/

Synchronizace adresáře z úložiště pomocí s3 na lokální PC

aws s3 --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz sync s3://test1/test_sync/ C:\Users\User\Downloads\test_sync


Nástroj aws s3 umožňuje použití rozšířených funkcí. Patří mezi ně například nastavení sdílení pomocí presigned URL.

Ovládání AWS CLI - api-level (s3api)

Nástroj aws podporuje rovněž použití nástroje aws s3api, který poskytuje rozšířené funkce pro ovládání služby S3, viz níže. Konfigurace klíčů a nastavení je totožná jako pro aws v úvodu tohoto návodu.

Sadu dostupných příkazů je možné získat buď zavoláním příkazu s volbou help, viz níže. Případně je kompletní soupis příkazů dostupný na webových stránkách aws.

aws s3api help
Mezi rozšířené funkce, které jsou dostupné pomocí s3api patří například nastavení bucket policy pro sdílení, případně verzování bucketů.

Příklad konfiguračního souboru

Po úspěšné konfiguraci by mělo dojít k vytvoření konfiguračního souboru v následující podobě. Na stejné cestě naleznete rovněž soubor s přístupovými klíči.

Windows: C:/Users/User/.aws/config
Linux: /home/user/.aws/config

[profile test-user]
region = us-east-1
output = text