Pregunta

¿alguien sabe si es posible importar un gran conjunto de datos en Amazon S3 desde una URL?

Básicamente, quiero evitar la descarga de un archivo enorme y luego resubiendo a S3 a través del portal web. Sólo quiero suministrar la URL de descarga de S3 y esperar a que se descarguen a su sistema de archivos. Parece una cosa fácil de hacer, pero simplemente no puede encontrar la documentación sobre el mismo.

¿Fue útil?

Solución

Dado que usted posee, obviamente, una EMA cuenta que recomiendo lo siguiente:

  • Crea una instancia de EC2 (de cualquier tamaño)
  • wget (o rizo) para buscar el archivo (s) a esa instancia EC2 . Por ejemplo: wget http://example.com/my_large_file.csv.
  • s3cmd
  • Uso s3cmd para cargar el archivo a S3. Por ejemplo: s3cmd cp my_large_file.csv s3://my.bucket/my_large_file.csv

Dado que las conexiones hechas entre la red interna y diferentes servicios de AWS AWS de apalancamiento, la carga de una instancia EC2 a S3 es bastante rápido. Mucho más rápido que la posibilidad de subir desde su propio ordenador. De esta manera le permite evitar la descarga del archivo en el ordenador y el ahorro de tiempo potencialmente significativa la carga a través de la interfaz web.

Otros consejos

  1. Lanzamiento de una instancia EC2 con suficiente capacidad de almacenamiento

  2. ssh a la instancia

  3. Obtener el comando curl correspondiente a la descarga desde su máquina local. Puede utilizar las opciones de desarrollador en Google Chrome -> pestaña de red -> copia -> Copiar como rizo (Este paso es necesario para algunos sitios web que requieren autenticación como Kaggle)

  4. Desde la terminal de la instancia, ejecute el comando curl (-o output_file añadir al comando). Esto descargará y guardar el archivo

  5. Configurar AWS credenciales para conectarse a la instancia s3 (una forma de hacerlo es utilizar el comando aws config, proporcionar AWS clave de acceso Id y secreto),

  6. Este comando se utiliza para cargar el archivo a s3:

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

Consulte la documentación Aws: http://aws.amazon.com/code hay bibliotecas disponibles para la mayoría de los lenguajes de programación. Para que pueda crear un cubo y configurar en el código para obtener los datos de URL y de escritura a este cubo en s3

para, por ejemplo 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

Puede montar el cubo para s3 instancia EC2 y luego cd para la ruta / / a / s3_mounted_on_a_folder, no sólo tiene que utilizar el comando:

wget https://your.download.url/

para montar s3 a su EC2, s3fs uso.

Licenciado bajo: CC-BY-SA con atribución
scroll top