GNU/Linux >> Znalost Linux >  >> Linux

Nahrávání souborů na účet S3 z příkazového řádku Linuxu

Amazon nyní také poskytuje své vlastní nástroje CLI.

Z http://aws.amazon.com/cli/

Pomocí známé syntaxe můžete zobrazit obsah svých segmentů S3 ve výpisu založeném na adresáři.

$ aws s3 ls s3://mybucket
      LastWriteTime     Length Name
      -------------     ------ ----
                           PRE myfolder/
2013-09-03 10:00:00       1234 myfile.txt
...

Pomocí jediného příkazu na úrovni složky můžete provádět rekurzivní odesílání a stahování více souborů. AWS CLI bude tyto přenosy spouštět paralelně pro zvýšení výkonu.

$ aws s3 cp myfolder s3://mybucket/myfolder --recursive
upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt
upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt
...

Příkaz synchronizace usnadňuje synchronizaci obsahu místní složky s kopií v bucketu S3.

$ aws s3 sync myfolder s3://mybucket/myfolder --exclude *.tmp
upload: myfolder/newfile.txt to s3://mybucket/myfolder/newfile.txt
...

Dokumentace pro příkazy související se soubory je zde.


S3cmd dělá, co chceš. Nahrávání a stahování souborů, synchronizace adresářů a vytváření bucketů.

S3cmd je bezplatný nástroj a klient příkazového řádku pro nahrávání, načítání a správu dat v Amazon S3 a dalších poskytovatelích cloudových úložišť, kteří používají protokol S3, jako je Google Cloud Storage nebo DreamHost DreamObjects. Je nejvhodnější pro pokročilé uživatele, kteří jsou obeznámeni s programy příkazového řádku. Je také ideální pro dávkové skripty a automatické zálohování do S3, spouštěné z cronu atd.


Pokud nemůžete (možná jste na sdíleném hostiteli) nebo nechcete instalovat další nástroje, je možné použít pouze bash, curl a openssl.

http://tmont.com/blargh/2014/1/uploading-to-s3-in-bash

file=/path/to/file/to/upload.tar.gz
bucket=your-bucket
resource="/${bucket}/${file}"
contentType="application/x-compressed-tar"
dateValue=`date -R`
stringToSign="PUT\n\n${contentType}\n${dateValue}\n${resource}"
s3Key=xxxxxxxxxxxxxxxxxxxx
s3Secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret} -binary | base64`
curl -L -X PUT -T "${file}" \
  -H "Host: ${bucket}.s3.amazonaws.com" \
  -H "Date: ${dateValue}" \
  -H "Content-Type: ${contentType}" \
  -H "Authorization: AWS ${s3Key}:${signature}" \
  https://${bucket}.s3.amazonaws.com/${file}

Všimněte si, že jsem tento skript upravil z výše uvedeného odkazu. Přidal jsem -L možnost, protože AWS tam může vložit přesměrování. -L možnost bude následovat přesměrování za vás.

Ještě jedno upozornění. Toto nebude fungovat pro soubory větší než 5 GB. Ty vyžadují vícedílné nahrání, které by vyžadovalo složitější skript.


Linux
  1. Jak odstranit soubory a adresáře v Linuxu z příkazového řádku

  2. Prohledávejte torrenty z příkazového řádku v Linuxu

  3. Jak najít soubory pomocí příkazu fd v Linuxu

  1. Nakonfigurujte pracovní prostor Linuxu vzdáleně z příkazového řádku

  2. 4 způsoby, jak odeslat e-mailovou přílohu z příkazového řádku systému Linux

  3. 5 nástrojů příkazového řádku pro rychlé vyhledání souborů v systému Linux

  1. Jak rozdělit a kombinovat soubory z příkazového řádku v Linuxu

  2. Migrace linuxového serveru z příkazového řádku

  3. Zrychlete rsync při migraci linuxového serveru z příkazového řádku