[Twisted-Python] Throttling static.File
![](https://secure.gravatar.com/avatar/84965d0d894b45875d8045bc5762ba57.jpg?s=120&d=mm&r=g)
Hi, I wanted to write a http server that would: - show progress of all downloads - only allow one http connection per file per ip - rate limit the connection to 4kb/sec. now, I don't know enough about producers in order to know what pauseProducing and resumeProducing are actually supposed to do. That aside, I know that in the context of static.File and ThrottlingFactory, they're doing something that doesn't work properly. static.FileTransfer.pauseProducing is a no-op static.FileTransfer.resumeProducing sends 63665 bytes down the connection policies.ThrottlingFactory relies on how many bytes have been sent down the connection per-second to work out if it should throttle, and to throtte, it calls pauseProducing until the bytes/second has dropped enough to call resumeProducing. Basically, using these two components together didn't work, so I hacked stuff until it did. Please bear in mind this patch should not be applied because it breaks ThrottlingFactory for anything other than static.File's (calling pauseProducing(pause=1) on something without kwargs would be bad). Is there a 'real' solution to this situation, mine is hideous. (On another note, and this is a nevow thing, NevowSite is broken with static.File - I had to use site.Site( MyNevowPage() ) instead of NevowSite( MyNevowPage() - no big hassle) Stephen.
participants (1)
-
Stephen Thorne