[Twisted-Python] confusion with general web serving

Jonathan Vanasco twisted-python at 2xlp.com
Fri Apr 13 14:42:54 EDT 2007

i'm missing a key piece of connectivity here:

i'm building a twisted daemon to serve files.  right now it will  
serve off a local structure, in the future it will do that + handle  
proxying to s3.

I stripped out all the app specific code below.  my issue is that i  
can't figure out how to display a file on the system for a url, short  
of slurping it

i thought static.File would have soemthing to do with it, but I can't  
figure out how to get it into the http.Request.process routine.

suggestions ?


class UserphotoRequestHandler(http.Request):
	re_userphoto= re.compile("""^\w{32}(?:_[smlt])?.jpg$""")
	def process(self):
		if self.path == '/favicon.ico':

		if not self.re_userphoto.findall( self.path ):
			return return_notFound()

		myFilname= self.db_lookup():
		if not myFilname:
			return return_notFound()

		# how do i render myFilename ?				

	def return_notFound( self ):
		self.write("invalid request.")

class UserphotoHttp(http.HTTPChannel):
	requestFactory = UserphotoRequestHandler

class UserphotoHttpFactory(http.HTTPFactory):
	protocol= UserphotoHttp

if __name__ == "__main__":
	from twisted.internet import reactor
	reactor.listenTCP(7087, UserphotoHttpFactory())
	reactor.run( )

More information about the Twisted-Python mailing list