Saltar al contenido

descargar un archivo de Internet en el depósito S3

Después de mucho trabajar pudimos hallar la solución de este contratiempo que ciertos usuarios de este sitio web tienen. Si tienes algo que compartir no dejes de compartir tu información.

Solución:

Descargar los datos a través de curl y canalice el contenido directamente a S3. Los datos se transmiten directamente a S3 y no se almacenan localmente, lo que evita problemas de memoria.

curl "https://download-link-address/" | aws s3 cp - s3://aws-bucket/data-file

Como se sugirió anteriormente, si la velocidad de descarga es demasiado lenta en su computadora local, inicie una instancia EC2, ssh in y ejecute el comando anterior allí.

Para cualquier persona (como yo) con menos experiencia, aquí hay una descripción más detallada del proceso a través de EC2:

  1. Lance una instancia de Amazon EC2 en la misma región que el depósito S3 de destino. La instancia más pequeña disponible (predeterminada de Amazon Linux) debería estar bien, pero asegúrese de darle suficiente espacio de almacenamiento para guardar sus archivos. Si necesita velocidades de transferencia superiores a ~20 MB/s, considere seleccionar una instancia con conductos más grandes.

  2. Inicie una conexión SSH a la nueva instancia EC2, luego descargue los archivos, por ejemplo usando wget. (Por ejemplo, para descargar un directorio completo a través de FTP, puede usar wget -r ftp://name:[email protected]/somedir/.)

  3. Con la CLI de AWS (consulte la documentación de Amazon), cargue los archivos en su depósito de S3. Por ejemplo, aws s3 cp myfolder s3://mybucket/myfolder --recursive (para un directorio completo). (Antes de que este comando funcione, debe agregar sus credenciales de seguridad S3 a un archivo de configuración, como se describe en la documentación de Amazon).

  4. Termine/destruya su instancia EC2.

[2017 edit]

Di la respuesta original en 2013. Hoy recomendaría usar AWS Lambda para descargar un archivo y ponerlo en S3. Es el efecto deseado: colocar un objeto en S3 sin un servidor involucrado.

[Original answer]

No es posible hacerlo directamente.

¿Por qué no hacer esto con la instancia EC2 en lugar de su PC local? La velocidad de carga de EC2 a S3 en la misma región es muy buena.

con respecto a la lectura/escritura de secuencias desde/hacia s3, uso smart_open de python

Reseñas y calificaciones

Si te animas, tienes la libertad de dejar una reseña acerca de qué le añadirías a este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *