[pyar] [Web] Descargar archivo asignando un nombre

Leandro Brunner leandrobrunner en yahoo.com.ar
Jue Mayo 29 11:44:50 ART 2014


Utilizando la api "Filesystem API"de JavaScript, no te come a vos el 
ancho de banda... ya que el cliente (navegador) manda una solicitud al 
servidor remoto donde está alojado el archivo y lo almacena para su 
posterior uso...

El 29/05/14 11:20, Luis Masuelli escribió:
> No lo soluciona ni lo solucionara nunca. Si no queres hacerte cargo 
> del ancho de banda, de la request se encarga otro y por otro lado. Si 
> queres encargarte vos -ya que queres interceptar los encabezados- 
> entonces el ancho de banda es propio. Puede que con los iteradores 
> (stream=True) no te mastiques la memoria de tu maquina, pero aun asi 
> el ancho de banda te lo vas a masticar porque sos quien envia el 
> contenido. Eso es insalvable porque es todo server-side y las requests 
> vienen enteritas de un solo servidor. Estaria bueno poder indicar 
> "Mira: te indico a que te bajes el contenido, por tu cuenta, de <aca> 
> pero luego de pedirle los headers a ese servidor adjuntes estos 
> headers X Y Z que te estoy pasando ahora" pero creo que eso si 
> existiera podria dar lugar a altisimos bugs de seguridad.
>
> ------------------------------------------------------------------------
> From: slacklinucs en gmail.com
> Date: Thu, 29 May 2014 08:42:21 -0300
> To: pyar en python.org.ar
> Subject: Re: [pyar] [Web] Descargar archivo asignando un nombre
>
> Manuel,
>
> Me parece que una buena forma de ahorrar ancho de banda es iterando 
> sobre el body de la respuesta de requests como mostré más arriba, con 
> la solución JS si o si tenés que descargar el archivo completo a tu 
> servidor *antes* de que le des al usuario el Save As. Según tengo 
> entendido mega hostea los files en sus propios servidores así que no 
> es lo mismo que lo que vos querés hacer acá.
>
> En resumidas cuentas, si vos querés mostrarle el Save As al usuario 
> con un filename que vos quieras, tenés que tener el archivo en tu 
> server. El problema es ahorrar ancho de banda para los otros usuarios 
> también, descargar el archivo completo a tu server antes de servirlo a 
> tus usuarios no me parece que solucione el problema del ancho de banda.
>
> Saludos!
>
>
> 2014-05-28 22:01 GMT-03:00 Leandro Brunner 
> <leandrobrunner en yahoo.com.ar <mailto:leandrobrunner en yahoo.com.ar>>:
>
>     También puedes usar una combinación de ambas. Utilizar un proxy
>     para los navegadores que no son compatibles, los cuales van a ser
>     pocos... ;)
>
>     Saludos. Si tienes alguna duda con JavaScript escribíme.
>     El 28/05/14 21:55, Manuel Kaufmann escribió:
>
>         Gracias por las respuestas.
>
>         Creo que lo más fácil de implementar y que salga andando es
>         hacer un proxy utilizando el ancho de banda de mi servidor, lo
>         cuál es una cagada porque si hay 2 o 3 descargando
>         simultánneamente ya se va a venir abajo seguramente.
>
>         Por otro lado me gustaría investigar un poco más eso que dicen
>         de Javascript y el "Filesystem API" para guardar en caché. Por
>         ejemplo, https://mega.co.nz/ funciona así. Empieza a bajar el
>         archivo a "algún lado" y cuando termina te muestra una ventana
>         onda "Save as...", le das la ubicación y solo lo mueve ahí
>         (por detrás). Eso parece funcionar como dicen ustedes.
>
>         Creo que voy a investigar un poco por el lado de javascript...
>
>
>
>         2014-05-28 18:31 GMT-03:00 Martin Chikilian
>         <slacklinucs en gmail.com <mailto:slacklinucs en gmail.com>>:
>
>             Yo pensaba en algo como (sin probar):
>
>             def view():
>               resp = requests.get(url_bandcamp_mp3, stream=True)
>               def generate():
>                     for chunk in resp.iter_content:
>                         yield chunk
>                 return Response(generate(),
>             headers={'Content-Disposition': 'attachment;
>             filename=my_own_filename.mp3'}, mimetype='audio/mpeg')
>
>
>
>             2014-05-28 18:17 GMT-03:00 Sebastián Seba
>             <ssebastianj en gmail.com <mailto:ssebastianj en gmail.com>>:
>
>
>                 El 28 de mayo de 2014, 17:53, Martin Chikilian
>                 <slacklinucs en gmail.com <mailto:slacklinucs en gmail.com>>
>                 escribió:
>
>                     Está interesante el tema, tal vez una combinación
>                     de esto ayude a tu caso?
>                     http://docs.python-requests.org/en/latest/user/advanced/#body-content-workflow
>                     + http://flask.pocoo.org/docs/patterns/streaming/
>
>
>
>                 +1.
>
>                 En este caso ¿qué convendría?
>
>                 * Que Requests realice el streaming.
>                 * Que la vista de Flask haga el streaming.
>                 * Ambos hacen el streaming.
>
>                 _______________________________________________
>                 pyar mailing list pyar en python.org.ar
>                 <mailto:pyar en python.org.ar>
>                 http://listas.python.org.ar/listinfo/pyar
>
>                 PyAr - Python Argentina - Sitio web:
>                 http://www.python.org.ar/
>
>                 La lista de PyAr esta Hosteada en USLA - Usuarios de
>                 Software Libre de Argentina - http://www.usla.org.ar
>
>
>
>             _______________________________________________
>             pyar mailing list pyar en python.org.ar
>             <mailto:pyar en python.org.ar>
>             http://listas.python.org.ar/listinfo/pyar
>
>             PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
>             La lista de PyAr esta Hosteada en USLA - Usuarios de
>             Software Libre de Argentina - http://www.usla.org.ar
>
>
>
>
>         -- 
>         Kaufmann Manuel
>         -- http://mkaufmann.com.ar
>
>
>         _______________________________________________
>         pyar mailing listpyar en python.org.ar  <mailto:pyar en python.org.ar>
>         http://listas.python.org.ar/listinfo/pyar
>
>         PyAr - Python Argentina - Sitio web:http://www.python.org.ar/
>
>         La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina -http://www.usla.org.ar
>
>
>
>     _______________________________________________
>     pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar>
>     http://listas.python.org.ar/listinfo/pyar
>
>     PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
>     La lista de PyAr esta Hosteada en USLA - Usuarios de Software
>     Libre de Argentina - http://www.usla.org.ar
>
>
>
> _______________________________________________ pyar mailing list 
> pyar en python.org.ar http://listas.python.org.ar/listinfo/pyar PyAr - 
> Python Argentina - Sitio web: http://www.python.org.ar/ La lista de 
> PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - 
> http://www.usla.org.ar
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140529/c7e6563c/attachment-0001.html>


More information about the pyar mailing list