Toto je starší verze dokumentu!
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.
On CentOS/RHEL:
$ sudo yum install s3cmd
On Ubuntu/Debian:
$ sudo apt install s3cmd
Pro konfiguraci s3cmd potřebujete Access Key a Secret Key, kter7 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
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://newbacket
Odstranění s3 bucketu
$ s3cmd rb s3://newbacket
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://newbacket/
Nahrávání dat do s3 bucketu
Upload souborů
$ s3cmd put file.txt s3://newbacket/
Uploud složek
$ s3cmd put -r directory s3://newbacket/
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://newbacket/file.txt
Odstranění dat z s3 bucketu
$ s3cmd del s3://newbacket/file.txt
$ s3cmd del s3://newbacket/directory
Synchronizování dat do s3 bucketu
$ s3cmd sync /local/path/ s3://newbacket/backup/
Synchronizování dat z s3 bucketu
$ s3cmd sync s3://newbacket/backup/ ~/restore/
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 musíme provést konfiguraci AWS CLI. Pro konfiguraci doporučujeme používat volbu --profile, která vám umožní definovat více uživatelských profilů, například pro vás a servisní identitu.
$ aws configure --profile pepa_servis AWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLE AWS Secret Access Key [None]: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY Default region name [None]: 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
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