I had to do something perverted to save the project: I make a local redirect to a PHP script, which uses readfile <http://de.php.net/manual/en/function.readfile.php>. No problem there. (Retrieving the original file name and content-type in web2py.)
It's only rocket. And it was reported by a co-worker and a customer. One silly idea: What if Rocket has problems with some proxies/firewalls? The customer has a broken proxy which caused different problems for other projects. I don't know about any proxy at work, but it could be that they reroute everything on port 80 through a proxy without me knowing. (Ignore the non-technical implications of this assumption.) Massimo Di Pierro <massimo.dipie...@gmail.com> wrote: > I just tried with chrome and osx and I cannot reproduce the problem (I > tried with a 166MB file). > > TIm, who made rocket, also claims he tried this extensively on windows > and cannot reproduce the problem. > > I do not doubt you experience this issue. In order to try isolate > better what may be causing it... is there anybody else having this > problem with large files download? > > Massimo > > On Jun 20, 2:53 am, Stefan Scholl <ste...@no-spoon.de> wrote: >> Sever OS: Linux (remote, behind Apache 2.2), Windows XP (local, >> direct) >> Client OS: Windows XP >> Browser: Firefox 4, Internet Explorer 8 >> Rocket version: 1.2.2 >> >> All combinations break the download for big files (33 MiB), >> regardless of chunk_size or server. >> >> Only Internet Explorer 8 (all servers) had problems with small >> files (160 KiB), before increasing chunk_size for the streamed >> download. >> >> Made the changes to rocket.py (1.2.2), restarted web2py, and the >> download was still broken. >> >> By the way: One of the new examples (Dog and owner registration, >> with picture upload/download) doesn't use streamed download. It >> reads the whole file and sends it. This method doesn't work for >> big files, too. >> >> Massimo Di Pierro <massimo.dipie...@gmail.com> wrote: >> >> >> >> >> >> >> >> >> >> > Can you make a list of combinations >> >> > browser name, version, server os, web server >> > FF, 4, Windows 7, Rocket >> > ... >> >> > for which you experienced the problem? >> >> > can you also try the following: >> > 1) in the rocket.py code replace >> >> > 'HTTP/1.1 ' with 'HTTP/1.0 ' >> >> > and replace >> >> > environ['SERVER_PROTOCOL'] = request['protocol'] >> >> > with >> >> > environ['SERVER_PROTOCOL'] = "1.0" >> >> > Looks like acts as if the protocol of response is the same as the >> > request but always declare the protocol of the response to be 1.1 even >> > if the request is 1.0. This may result in keep-alive connections >> > ignored by the browser. Perhaps this is part of the problem? >> >> > On Jun 17, 1:35 pm, Stefan Scholl <ste...@no-spoon.de> wrote: >> >> To Massimo and the list/group: >> >> >> You asked on Reddit if the only constant is the browser. No it >> >> isn't. But it was the browser which had the problem first, with >> >> smaller files. >> >> >> For smaller files it was enough to raise the chunk_size. IE8 is >> >> slow, maybe this is the reason? >> >> >> Firefox 4 failed when I tried to download a 33 MiB file remotely. >> >> IE8 failed for anything above 64 KiB on localhost. >> >> >> It's almost as if Rocket is so fast because it sends without >> >> regard for any receiver. Direct (localhost) or behind a proxy >> >> (Apache 2.2 on the remote Linux server). >> >> Don't know how this could happen. HTTP isn't ZModem. ;-) >> >> >> Stefan Scholl <ste...@no-spoon.de> wrote: >> >> > I have a parameters_XXX.py file from the normal web2py (with >> >> > rocket) and used the same IP and port with anyserver.py+Tornado >> >> > (and the other one stopped, of course). >> >> >> > Tested with web2py 1.91.6. Were there any changes regarding this? >> >> >> > (I'm still very reluctant to upgrade this project.) >> >> >> > Massimo Di Pierro <massimo.dipie...@gmail.com> wrote: >> >> >> Try this: >> >> >> >> python >> >> >>>>> from gluon.main import save_password >> >> >>>>> save_password(raw_input('admin password: '),XXX) >> >> >> >> This will create a parameters_XXX.py file. It must be in the main >> >> >> web2py folder. Caveats, the admin interface is disabled if you are not >> >> >> form localhost and you are not using https. >> >> >> Hope this helps. Hope to have you back on the mailing list. >> >> >> >> On Jun 17, 8:43 am, Stefan Scholl <ste...@no-spoon.de> wrote: >> >> >>> Now I can't access the admin interface, because the password >> >> >>> isn't set. (It isn't reading the stored password.) >> >> >> >>> Stefan Scholl <ste...@no-spoon.de> wrote: >> >> >>> > OK, it was Rocket. >> >> >> >>> > Tested it with the old web2py and Tornado 1.2.1 via anyserver.py >> >> >>> > and the download is OK. >> >> >> >>> > Stefan Scholl <stefan.sch...@gmail.com> wrote: >> >> >>> >> The higher value for chunk_size didn't work with a 33 MiB file. >> >> >>> >> Even >> >> >>> >> in Firefox 4. >> >> >>> >> So I tried 1.96.4 (Rocket 1.2.2) on Windows XP. >> >> >> >>> >> Made a new and simple app (dtest). The download there uses >> >> >>> >> "response.download(request,db)" as well. >> >> >> >>> >> 1 simple table: db.define_table('stuff', Field('file', 'upload')) >> >> >> >>> >> Upload of the 33 MiB file via db admin, content listed on >> >> >>> >>http://127.0.0.1:8001/dtest/default/data/select/stuff(default >> >> >>> >> function "data" with "return dict(form=crud())". Download with >> >> >>> >> Internet Explorer 8 (after removing the tag that switches to >> >> >>> >> "Chrome >> >> >>> >> Frame", to have a realistic test like "normal" users). >> >> >> >>> >> Download was broken. A few KiB were missing. This was on localhost. >> >> >>> >> Remote tests have even worse results. >> >> >> >>> >> On 6 Mai, 17:51, Massimo Di Pierro <massimo.dipie...@gmail.com> >> >> >>> >> wrote: >> >> >>> >>> Can you try 1.95.1 >> >> >> >>> >>> On May 6, 6:03 am, Stefan Scholl <stefan.sch...@gmail.com> wrote: >> >> >> >>> >>> > The classicdownloadfunction: >> >> >> >>> >>> > defdownload(): >> >> >>> >>> > return response.download(request, db) >> >> >> >>> >>> > I'm developing on localhost (127.0.0.1, no SSL) and one strange >> >> >>> >>> > thing >> >> >>> >>> > happened: Downloads in IE8 (Windows XP) were all corrupt/broken >> >> >>> >>> > if >> >> >>> >>> > they weren't below 64KiB in size. Very easy to see with large >> >> >>> >>> > images. >> >> >> >>> >>> > Using a higher value for the argument 'chunk_size' solves this >> >> >>> >>> > problem, up to this new maximum. >> >> >> >>> >>> > web2py 1.91.6 >> >> >> -- >> >> Web (en):http://www.no-spoon.de/-*-Web (de):http://www.frell.de/ >> >> <!--[if IE 6]><script>for(x in document.open);</script><![endif]--> >> >> -- >> Web (en):http://www.no-spoon.de/-*- Web (de):http://www.frell.de/ >> <!--[if IE 6]><script>for(x in document.open);</script><![endif]--> > -- Web (en): http://www.no-spoon.de/ -*- Web (de): http://www.frell.de/ <!--[if IE 6]><script>for(x in document.open);</script><![endif]-->