[pyar] [Web] Descargar archivo asignando un nombre

Luis Masuelli luismasuelli en hotmail.com
Jue Mayo 29 11:52:05 ART 2014


Pero permite cambiar el nombre de archivo?

Date: Thu, 29 May 2014 11:44:50 -0300
From: leandrobrunner en yahoo.com.ar
To: pyar en python.org.ar
Subject: Re: [pyar] [Web] Descargar archivo asignando un nombre


  
    
  
  
    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>:

              
                 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
      
      

      
      

      _______________________________________________
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/43dffb14/attachment-0001.html>


More information about the pyar mailing list