Est-ce que quelqu'un sait s'il est possible d'importer un grand ensemble de données dans Amazon S3 à partir d'une URL?
Fondamentalement, je veux éviter de télécharger un fichier énorme et de le re-télécharger vers S3 via le portail Web. Je veux juste fournir l'URL de téléchargement à S3 et attendre qu'ils la téléchargent sur leur système de fichiers. Cela semble être une chose facile à faire, mais je ne trouve tout simplement pas la documentation à ce sujet.
Réponses:
Étant donné que vous possédez évidemment un compte AWS, je recommanderais ce qui suit:
wget http://example.com/my_large_file.csv
.s3cmd
pour télécharger le fichier sur S3. Par exemple:s3cmd cp my_large_file.csv s3://my.bucket/my_large_file.csv
Étant donné que les connexions établies entre divers services AWS exploitent le réseau interne d'AWS, le téléchargement à partir d'une instance EC2 vers S3 est assez rapide. Beaucoup plus rapide que de le télécharger depuis votre propre ordinateur. De cette façon, vous évitez de télécharger le fichier sur votre ordinateur et gagnez un temps potentiellement important à le télécharger via l'interface Web.
la source
Lancer une instance EC2 avec suffisamment de stockage
ssh à l'instance
Obtenez la commande curl correspondant au téléchargement depuis votre machine locale. Vous pouvez utiliser les options de développement dans Google Chrome -> onglet réseau -> copier -> copier en boucle (cette étape est nécessaire pour certains sites Web nécessitant une authentification tels que kaggle)
Depuis le terminal d'instance, exécutez la
curl
commande (ajoutez-la-o output_file
à la commande). Cela va télécharger et enregistrer le fichierConfigurer les informations d'identification aws pour connecter l'instance à s3 (une façon consiste à utiliser la commande
aws config
, fournir l'identifiant et le secret de la clé d'accès AWS),Utilisez cette commande pour télécharger le fichier sur s3:
la source
Reportez-vous à la documentation Aws: http://aws.amazon.com/code , des bibliothèques sont disponibles pour la plupart des langages de programmation. Vous pouvez donc créer un compartiment et configurer dans votre code pour récupérer les données de l'url et écrire dans ce compartiment en s3
par exemple en python:
Réf: https://boto.readthedocs.org/en/latest/s3_tut.html
la source
Vous pouvez monter votre bucket s3 sur l'instance ec2 puis cd dans le / chemin / vers / s3_mounted_on_a_folder, là vous pouvez simplement utiliser la commande:
pour monter s3 sur votre ec2, utilisez s3fs.
la source