web-dev-qa-db-fra.com

Comment scp sur Amazon s3?

Je dois envoyer des fichiers de sauvegarde de ~ 2 To à S3. Je suppose que l’option la moins compliquée serait la commande scp de Linux (avoir difficulté avec s3cmd et ne pas vouloir un Java/RoR excessif). 

Cependant, je ne suis pas sûr que ce soit possible: comment utiliser les clés privées et publiques de S3 avec scp, sans savoir quelle serait ma adresse IP/url/chemin de destination? 

J'apprécie vos conseils.

20
qliq

Vous ne pouvez pas SCP.

Le moyen le plus rapide, si cela ne vous dérange pas de dépenser de l'argent, est probablement simplement de le leur envoyer sur un disque et ils le mettront là pour vous. Voir leur Import/Export service.

8
El Yobo

Depuis 2015, SCP/SSH n'est pas pris en charge (et ne le sera probablement jamais pour les raisons mentionnées dans les autres réponses).

Outils AWS officiels pour la copie de fichiers vers/depuis S3

  1. Outil en ligne de commande (pip3 install awscli) - note Les informations d'identification doivent être spécifiées. Je préfère utiliser des variables d'environnement plutôt qu'un fichier: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY.

    aws s3 cp /tmp/foo/ s3://bucket/ --recursive --exclude "*" --include "*.jpg"
    

    et une commande semblable à rsync:

    aws s3 sync . s3://mybucket
    
  2. Interface Web:

Méthodes non-AWS

Toutes les autres solutions dépendent d’exécutables tiers (par exemple, botosync, jungledisk, etc.) qui peuvent être formidables tant qu’elles sont prises en charge. Mais les outils tiers vont et viennent au fil des années et vos scripts auront une durée de vie plus courte.


EDIT: En fait, AWS CLI est basé sur botocore:

https://github.com/boto/botocore

Donc, botosync mérite un peu plus de respect en tant qu'ancien homme d'État que je ne lui ai peut-être accordé.

32
Sridhar-Sarnobat

Voici le truc pour ça, boto-rsync . Depuis n'importe quelle machine Linux, installez boto-rsync puis utilisez-le pour transférer / local/path/ vers your_bucket/remote/path/:

boto-rsync -a your_access_key -s your_secret_key /local/path/ s3://your_bucket/remote/path/

Les chemins peuvent aussi être des fichiers.

Pour un fournisseur compatible S3 autre qu'AWS, utilisez --endpoint:

boto-rsync -a your_access_key -s your_secret_key --endpoint some.provider.com /local/path/ s3://your_bucket/remote/path/
11
datasn.io

Pourquoi ne pas le scp sur un volume EBS et ensuite utiliser s3cmd à partir de là? Tant que votre volume EBS et votre compartiment s3 se trouvent dans la même région, les frais de données entrantes ne vous seront facturés qu'une seule fois (de votre réseau au volume EBS)

J'ai constaté qu'une fois sur le réseau s3, s3cmd est beaucoup plus fiable et que le taux de transfert des données est beaucoup plus élevé que le transfert direct vers s3.

4
robotrobot

Il existe un outil extraordinaire appelé Dragon Disk. Il fonctionne même comme un outil de synchronisation et non comme un simple scp.

http://www.s3-client.com/

Le Guide d'installation d'Amazon s3 est fourni ici et après l'avoir configuré, vous pouvez copier-coller les fichiers de votre ordinateur local vers s3 ou configurer une synchronisation automatique. L'interface utilisateur est très similaire à WinSCP ou Filezilla.

1
Koustav Ray

Voici,

scp USER@REMOTE_IP:/FILE_PATH >(aws s3 cp - s3://BUCKET/SAVE_FILE_AS_THIS_NAME)
0
GypsyCosmonaut