[pyar] [Web] Descargar archivo asignando un nombre
Luis Masuelli
luismasuelli en hotmail.com
Jue Mayo 29 11:20:38 ART 2014
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>:
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>:
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>:
El 28 de mayo de
2014, 17:53, Martin Chikilian <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
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
--
Kaufmann Manuel
-- http://mkaufmann.com.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
_______________________________________________
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/ae3ebdf3/attachment-0001.html>
More information about the pyar
mailing list