GNU/Linux >> Linux Esercitazione >  >> Linux

Caricamento di file sull'account S3 dalla riga di comando di Linux

Amazon ora fornisce anche i propri strumenti CLI.

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

Utilizzando una sintassi familiare, puoi visualizzare i contenuti dei tuoi bucket S3 in un elenco basato su directory.

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

È possibile eseguire caricamenti e download ricorsivi di più file in un singolo comando a livello di cartella. L'AWS CLI eseguirà questi trasferimenti in parallelo per migliorare le prestazioni.

$ 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
...

Un comando di sincronizzazione semplifica la sincronizzazione dei contenuti di una cartella locale con una copia in un bucket S3.

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

La documentazione per i comandi relativi ai file è disponibile qui.


S3cmd fa quello che vuoi. Caricamento e download di file, sincronizzazione di directory e creazione di bucket.

S3cmd è uno strumento a riga di comando gratuito e un client per il caricamento, il recupero e la gestione dei dati in Amazon S3 e altri fornitori di servizi di archiviazione cloud che utilizzano il protocollo S3, come Google Cloud Storage o DreamHost DreamObjects. È più adatto per utenti esperti che hanno familiarità con i programmi a riga di comando. È anche ideale per script batch e backup automatici su S3, attivati ​​da cron, ecc.


Se non puoi (forse sei su un host condiviso) o non vuoi installare strumenti extra, è possibile usare solo bash, curl e 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}

Nota che ho modificato questo script da quello nel link sopra. Ho aggiunto il -L opzione perché AWS potrebbe inserire un reindirizzamento lì. Il -L l'opzione seguirà il reindirizzamento per te.

Un altro avvertimento. Questo non funzionerà per file più grandi di 5 GB. Quelli richiedono un caricamento in più parti che richiederebbe uno script più complesso.


Linux
  1. 4 modi per inviare allegati e-mail dalla riga di comando di Linux

  2. Come trovare file con il comando fd in Linux

  3. Migrazione di un server Linux dalla riga di comando

  4. 11 Esempi di comandi Linux diff3 (confronta 3 file riga per riga)

  5. matlab esegue lo script dalla riga di comando linux

Come estrarre o decomprimere i file tar.gz dalla riga di comando di Linux

fdupes:uno strumento da riga di comando per trovare ed eliminare file duplicati in Linux

youtube-dl:scarica i video di Youtube dalla riga di comando di Linux

Comando Rm in Linux

Come cercare file dalla riga di comando di Linux

Invia e-mail in Linux dalla riga di comando