stream the file rather than store it in memory
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Empieza leyendo la implementación actual de URL-to-tempfile y la documentación de Ruby IO.copy_stream y del streaming de Net::HTTP citada en la issue. Se considera terminado cuando las descargas se realizan mediante streaming sin cargar el archivo completo en memoria y se hace cumplir un límite superior; la issue no especifica archivos ni pruebas concretos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
from discussion in https://www.reddit.com/r/ruby/comments/4bcgjw/download_url_to_tempfile_gem/
tips from Reddit user moomaka
This implementation downloads the entire file into memory then writes it to disk. This is not only a bad idea for performance but is also a DoS vector.
Implementation recomendation
Probably the most efficient is IO.copy_stream or similar methods from IO: http://ruby-doc.org/core->2.3.0/IO.html. Another option is Net::HTTP streaming responses: http://ruby-doc.org/stdlib->2.3.0/libdoc/net/http/rdoc/Net/HTTP.html#class-Net::HTTP-label-Streaming+Response+Bodies
Regardless of which approach you use, you probably want to set an upper bound on the size of the >file also or someone could just point you at a 15TB file :)
- Lenguaje dominante
- Ruby
- Estrellas
- 2
- Forks
- 1
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Issues similares
-
revoir les metions de la DGEAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
betagouv/conseillers-entreprises#4720 ·
Los mantenedores suelen responder en 3 días
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
zerocracy/judges-action#2692 · 1 comentario ·
Los mantenedores suelen responder en 6 días
-
agent:triaged bug bughunt pm:bundler priority:p1
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
SocketDev/socket-patch#896 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Add Catalan (ca) translationAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
eurosky-social/eu-haul#32 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
e0ipso/self-review#171 ·
Los mantenedores suelen responder en 1 día