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.