Le téléchargement d'un vaste ensemble de données sur le web directement dans AWS S3

datascience.stackexchange https://datascience.stackexchange.com/questions/5589

  •  16-10-2019
  •  | 
  •  

Question

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?

En fait, je veux éviter de télécharger un fichier énorme et reuploading ensuite à S3 via le portail web. Je veux juste fournir l'URL de téléchargement à S3 et attendre pour eux pour le télécharger sur leur système de fichiers. Il semble comme une chose facile à faire, mais je ne peux pas trouver la documentation à ce sujet.

Était-ce utile?

La solution

Puisque vous possédez évidemment un compte AWS je recommande ce qui suit:

  • Créer une instance EC2 (de toute taille)
  • wget (ou boucle) pour récupérer le fichier (s) à cette instance EC2 . Par exemple: wget http://example.com/my_large_file.csv.
  • s3cmd
  • Utilisez s3cmd pour télécharger le fichier à S3. Par exemple: s3cmd cp my_large_file.csv s3://my.bucket/my_large_file.csv

Depuis les connexions établies entre le réseau interne de différents services de AWS levier AWS, le téléchargement d'une instance EC2 à S3 est assez rapide. Bien plus efficace que le télécharger à partir de votre propre ordinateur. De cette façon, vous permet d'éviter de télécharger le fichier sur votre ordinateur et mémorisez L'ajout de temps potentiellement important via l'interface web.

Autres conseils

  1. Lancer une instance EC2 avec suffisamment de stockage

  2. ssh à l'instance

  3. Obtenir la commande boucle correspondant au téléchargement de votre machine locale. Vous pouvez utiliser les options de développement dans Google Chrome -> onglet Réseau -> Copie -> copie en boucle (Cette étape est nécessaire pour certains sites Web nécessitant une authentification tels que Kaggle)

  4. A partir de la borne d'exemple, exécuter la commande curl (append -o output_file à la commande). Cela va télécharger et enregistrer le fichier

  5. Configurer AWS informations d'identification pour se connecter à l'instance s3 (une méthode consiste à utiliser la commande aws config, fournir la clé d'accès AWS Id et secret),

  6. Utilisez cette commande pour télécharger le fichier à s3:

    aws s3 cp path-to-file s3://bucket-name/
    

Reportez-vous la documentation Aws: http://aws.amazon.com/code il existe des bibliothèques disponibles pour la plupart des langues programmation. Ainsi, vous pouvez créer un seau et configurer dans votre code pour récupérer les données de l'URL et écrire à ce seau dans s3

pour par exemple en python:

from boto.s3.key import Key
k = Key(bucket)
k.key = 'foobar'
k.set_contents_from_string(url_data)

Ref: https://boto.readthedocs.org/en/latest/s3_tut. html

Vous pouvez monter votre seau s3 à l'instance EC2 puis cd sur le chemin de / / à / s3_mounted_on_a_folder, il vous suffit d'utiliser la commande:

wget https://your.download.url/

pour monter s3 à votre EC2, utilisez s3fs.

Licencié sous: CC-BY-SA avec attribution
scroll top