GNU/Linux >> Tutoriels Linux >  >> Linux

Téléchargement de fichiers sur le compte S3 à partir de la ligne de commande Linux

Amazon fournit désormais également ses propres outils CLI.

À partir de http://aws.amazon.com/cli/

En utilisant une syntaxe familière, vous pouvez afficher le contenu de vos compartiments S3 dans une liste basée sur un répertoire.

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

Vous pouvez effectuer des chargements et des téléchargements récursifs de plusieurs fichiers dans une seule commande au niveau du dossier. L'AWS CLI exécutera ces transferts en parallèle pour des performances accrues.

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

Une commande de synchronisation facilite la synchronisation du contenu d'un dossier local avec une copie dans un compartiment S3.

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

La documentation pour les commandes liées aux fichiers est ici.


S3cmd fait ce que tu veux. Charger et télécharger des fichiers, synchroniser des répertoires et créer des compartiments.

S3cmd est un outil de ligne de commande gratuit et un client pour télécharger, récupérer et gérer des données dans Amazon S3 et d'autres fournisseurs de services de stockage en nuage qui utilisent le protocole S3, tels que Google Cloud Storage ou DreamHost DreamObjects. Il convient mieux aux utilisateurs expérimentés qui connaissent les programmes en ligne de commande. Il est également idéal pour les scripts batch et les sauvegardes automatisées sur S3, déclenchées depuis cron, etc.


Si vous ne pouvez pas (vous êtes peut-être sur un hôte partagé) ou si vous ne voulez pas installer d'outils supplémentaires, il est possible d'utiliser simplement bash, curl et 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}

Notez que j'ai modifié ce script à partir de celui du lien ci-dessus. J'ai ajouté le -L car AWS peut y insérer une redirection. Le -L suivra la redirection pour vous.

Une autre mise en garde. Cela ne fonctionnera pas pour les fichiers de plus de 5 Go. Ceux-ci nécessitent un téléchargement en plusieurs parties qui nécessiterait un script plus complexe.


Linux
  1. Configurer un espace de travail Linux à distance depuis la ligne de commande

  2. 4 façons d'envoyer une pièce jointe à partir de la ligne de commande Linux

  3. Comment supprimer des fichiers et des répertoires sous Linux à partir de la ligne de commande

  4. Rechercher des torrents à partir de la ligne de commande sous Linux

  5. Comment rechercher des fichiers avec la commande fd sous Linux

Comment extraire ou décompresser des fichiers tar.gz à partir de la ligne de commande Linux

fdupes - Un outil de ligne de commande pour rechercher et supprimer des fichiers en double sous Linux

youtube-dl - télécharger des vidéos Youtube à partir de la ligne de commande Linux

Commande Rm sous Linux

Comment rechercher des fichiers à partir de la ligne de commande Linux

Envoyer un e-mail sous Linux à partir de la ligne de commande