¿Alguien sabe si es posible importar un gran conjunto de datos a Amazon S3 desde una URL?
Básicamente, quiero evitar descargar un archivo enorme y luego volver a cargarlo en S3 a través del portal web. Solo quiero proporcionar la URL de descarga a S3 y esperar a que la descarguen en su sistema de archivos. Parece una cosa fácil de hacer, pero simplemente no puedo encontrar la documentación.
Respuestas:
Como obviamente posee una cuenta de AWS, le recomiendo lo siguiente:
wget http://example.com/my_large_file.csv
.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 realizadas entre varios servicios de AWS aprovechan la red interna de AWS, la carga de una instancia de EC2 a S3 es bastante rápida. Mucho más rápido que cargarlo desde su propia computadora. De esta manera, puede evitar descargar el archivo a su computadora y ahorrar tiempo potencialmente significativo al cargarlo a través de la interfaz web.
fuente
Inicie una instancia de EC2 con suficiente almacenamiento
ssh a la instancia
Obtenga el comando curl correspondiente a la descarga desde su máquina local. Puede usar las opciones de desarrollador en Google Chrome -> pestaña de red -> copiar -> copiar como curl (este paso es necesario para algunos sitios web que requieren autenticación como kaggle)
Desde el terminal de la instancia, ejecute el
curl
comando (agregar-o output_file
al comando). Esto descargará y guardará el archivoConfigure las credenciales aws para conectar la instancia a s3 (una forma es usar el comando
aws config
, proporcionar el ID y el secreto de la clave de acceso de AWS),Use este comando para cargar el archivo en s3:
fuente
Consulte la documentación de Aws: http://aws.amazon.com/code hay bibliotecas disponibles para la mayoría de los lenguajes de programación. Por lo tanto, puede crear un depósito y configurarlo en su código para obtener datos de url y escribir en este depósito en s3
por ejemplo en python:
Ref: https://boto.readthedocs.org/en/latest/s3_tut.html
fuente
Puede montar su bucket s3 en la instancia ec2 y luego cd a / path / to / s3_mounted_on_a_folder, allí simplemente puede usar el comando:
para montar s3 en tu ec2, usa s3fs.
fuente