Toto je starší verze dokumentu!
Klient AWS CLI je standardní nástroj podporující práci přes s3 rozhraní. Klient je napsaný v pythonu, je tedy nezbytné mít nainstalovaný python alespoň ve verzi 3.3+. Dle oficiální dokumentace je sice podporován i python 2.6.5+, nicméně můžete narazit na problémy s kompatibilitou s ohledem na námi provozovanou verzi Cephu.
Nejprve nainstalujeme AWS CLI klienta pomoci pip, kde --upgrade provede upgrade všech již nainstalovaných součástí; --user použije podadresář aktuálního uživatele, pod kterým spouštíte pip, aby nedošlo k modifikaci systémových knihoven.
$ pip3.6 install awscli --upgrade --user
Dále provedeme upgrade na nejnovější verzi AWS CLI
$ aws --version aws-cli/1.16.239 Python/3.6.3 Linux/3.10.0-957.27.2.el7.x86_64 botocore/1.12.229
$ pip3.6 install --upgrade --user awscli
Dále provedeme konfiguraci AWS CLI. Následující přiklady využívají konfiguraci s použitím volby --profile.
$ aws configure --profile pepa_servis AWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLE AWS Secret Access Key [None]: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY Default region name [None]: Default output format [None]: text
AWS Access Key ID - access key, který jste si vygenerovali
Secret Access Key - secret key, který jste si vygenerovali
Default region name - prefix pro servery, na které budete zasílat vaše požadavky, Zde ponecháme nevyplněné!
Default output format - výstupní formát dat (json, text, table)
Nejdříve provedeme instalaci pomocí pip.
pip3.6 install awscli-plugin-endpoint --user
Případně můžete nainstalovat nejnovější verzi z Github repozitáře
pip3.6 install git+https://github.com/wbingli/awscli-plugin-endpoint.git --user
Pro použití nainstalovaného pluginu jej musíme nejdříve zapnout.
aws configure set plugins.endpoint awscli_plugin_endpoint
Následně pomocí pluginu přidáme adresu CESNET s3 endpointu.
aws configure --profile pepa_servis set s3.endpoint_url https://s3.cl1.du.cesnet.cz
Výše uvedené příkazy by měly provést změny ve vašem configu, viz níže.
[user@distro ~]$ cat .aws/config [profile pepa_servis] output = text s3 = endpoint_url = https://s3.cl1.du.cesnet.cz [plugins] endpoint = awscli_plugin_endpoint
Nyní můžeme ověřit funkčnost připojení a zkusit si například vylistovat existující buckety.
$ aws s3 --profile pepa_servis ls 2019-09-11 17:06:53 test-win 2019-09-11 14:45:45 large-files 2019-09-11 14:48:21 small-files
Pro zobrazení plné nápovědy (dostupných příkazů) můžeme využít help
$ aws s3 help
Práce s buckety
Práce s buckety
Výroba bucketu
$ aws s3 --profile pepa_servis mb s3://test1
Vylistování bucketů
$ aws s3 --profile pepa_servis ls 2019-09-18 13:30:17 test1
Odstranění bucketu
aws s3 --profile pepa_servis rb s3://test1
Práce se soubory a adresáři
Práce se soubory a adresáři
Soubory
Upload souboru
$ aws s3 --profile pepa_servis cp file_1.tar s3://test1 upload: ./file_1.tar to s3://test1/file_1.tar
Download souboru
$ aws s3 --profile pepa_servis cp s3://test1/file_1.tar downloads/ download: s3://test1/file1.tar to downloads/file1.tar
Smazání souboru
$ aws s3 --profile pepa_servis rm s3://test1/file_1.tar delete: s3://test1/file1.tar
Adresáře
Upload adresáře
$ aws s3 --profile pepa_servis cp my_dir s3://test1/test_dir1 --recursive
Download adresáře
$ aws s3 --profile pepa_servis cp s3://test1/test_dir1 downloads/ --recursive
Smazání adresáře
$ aws s3 --profile pepa_servis rm s3://test1/test_dir1 --recursive
Synchronizace adresářů
Synchronizace adresáře na úložiště pomocí s3
$ aws s3 --profile pepa_servis sync downloads s3://test1/my_sync/
Synchronizace adresáře z úložiště pomocí s3 na lokální PC
$ aws s3 --profile pepa_servis sync s3://test1/my_sync/ ./restored/
$ aws s3api help
S3cmd je bezplatný nástroj příkazového řádku a klient pro nahrávání, načítání a správu dat v s3 cloudových úložišťích. S3cmd je psán v Pythonu. Je to open source projekt dostupný pod GNU Public License v2 (GPLv2) a je zdarma pro komerční i soukromé použití.
s3cmd je k dispozici ve výchozích repozitářích rpm pro systémy CentOS, RHEL a Ubuntu. Nainstalujte jej pomocí jednoduchého spuštění následujících příkazů ve vašem systému.
Na CentOS/RHEL:
$ sudo yum install s3cmd
Na Ubuntu/Debian:
$ sudo apt install s3cmd
Pro konfiguraci s3cmd potřebujete Access Key a Secret Key, který jste si vygenerovali. Po získání klíčů je vložte do konfiguračního souboru /home/user/.s3cfg.
[default] host_base = https://s3.cl1.du.cesnet.cz use_https = True bucket_location = cze access_key = xxxxxxxxxxxxxxxxxxxxxx secret_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx gpg_command = /usr/bin/gpg gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s gpg_passphrase = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Alternativně lze konfigurační soubor získat použitím interaktivního průvodce:
s3cmd –configure
s3cmd –configure
$ s3cmd --configure
Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.
Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
Access Key: xxxxxxxxxxxxxxxxxxxxxx Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Default Region [US]: cze S3 Endpoint [s3.amazonaws.com]: s3.cl1.du.cesnet.cz DNS-style bucket+hostname:port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]: Encryption password: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Path to GPG program [/usr/bin/gpg]: Use HTTPS protocol [Yes]: Test access with supplied credentials? [Y/n] y Save settings? [y/N] y Configuration saved to '~/.s3cfg'
s3 příkazy podporují běžné operace s buckety, například vytváření, listování a mazání.
Práce s buckety
Práce s buckety
Vylistování všech s3 bucketů
$ s3cmd ls
Výroba nového s3 bucketu
$ s3cmd mb s3://newbucket
Odstranění s3 bucketu
$ s3cmd rb s3://newbucket
Bucket jde odstranit pouze prázdný!
Práce se soubory a adresáři
Práce se soubory a adresáři
Vylistování obsahu s3 bucketu
$ s3cmd ls s3://newbucket/
Nahrávání dat do s3 bucketu
Upload souborů
$ s3cmd put file.txt s3://newbucket/
Upload zašifrovaných souborů
$ s3cmd put -e file.txt s3://newbucket/
Upload složek
$ s3cmd put -r directory s3://newbucket/
Ujistěte se, že nepřidáváte koncové lomítko v adresáři (např .: directory/), jinak nahraje pouze obsah adresáře.
Stahování souboru z s3 bucketu
$ s3cmd get s3://newbucket/file.txt
Odstranění dat z s3 bucketu
$ s3cmd del s3://newbucket/file.txt
$ s3cmd del s3://newbucket/directory
Synchronizování dat do s3 bucketu
$ s3cmd sync /local/path/ s3://newbucket/backup/
Synchronizování dat z s3 bucketu
$ s3cmd sync s3://newbucket/backup/ ~/restore/
CESNET, z. s. p. o.
Generála Píky 26
160 00 Praha 6
Tel: +420 234 680 222
Fax: +420 224 320 269
info@cesnet.cz
Tel: +420 234 680 222
GSM: +420 602 252 531
Fax: +420 224 313 211
support@cesnet.cz