[Grok-dev] Middleware and Grok
bribon
alvreinoso at gmail.com
Tue Apr 27 11:55:18 EDT 2010
Hello,
I'm trying to add a middleware application to create a progress bar when a
file is updating to the server. I've read some tutorial how to make it, but
I haven't got it yet. I'm using paste and gp.fileupload module. This my
code:
This is the middleware application, FileUpload:
from gp.fileupload import make_app
import os
class FileUploadMedia(object):
"""Wrap a `paste.urlparser.StaticURLParser` to consume stdin if needed"""
def __init__(self, application):
self.application = application
def __call__(self, environ, start_response):
if environ['REQUEST_METHOD'] == 'POST':
if 'gp.fileupload.id' in environ['QUERY_STRING']:
# need to consume so see how many block we have to read
bsize = 1024
length = int(environ['CONTENT_LENGTH'])
print 'upload', length
blocks = [bsize for i in range(bsize, length, bsize)]
blocks.append(length-len(blocks)*bsize)
# read input an write to /dev/null :)
rfile = environ['form.input']
[rfile.read(size) for size in blocks]
# StaticURLParser only deserve GET
environ['REQUEST_METHOD'] = 'GET'
return self.application(environ, start_response)
def make_demo(app, global_conf, **local_conf):
upload_app = make_app(FileUploadMedia(app), {},
max_size= None,
tempdir=os.path.join('/tmp', 'fileupload'))
def application(environ, start_response):
if '/gp.fileupload/demo.html' in environ['PATH_INFO']:
return upload_app(environ, start_response)
elif '/gp.fileupload.' in environ['PATH_INFO']:
return upload_app(environ, start_response)
else:
return app(environ, start_response)
return application
This is the code at debug.ini:
[app:zope]
use = egg:grokserver
filter-with = translogger
paste.app_factory = zope.paste.application:zope_publisher_app_factory
[pipeline:Paste.Main]
pipeline = fileupload main
[filter:fileupload]
paste.filter_factory = FileUploadMedia:make_demo
#use = egg:gp.fileupload
tempdir = %(here)s/data/fileupload
I have some questions:
Where do I have to store the application in the grok server?
How can I get the middleware application running?
Do I need to create a egg?
It would be great if someone could help me out because I got stuck with
this!
Thanks,
Alvaro
--
View this message in context: http://old.nabble.com/Middleware-and-Grok-tp28378758p28378758.html
Sent from the Grok mailing list archive at Nabble.com.
More information about the Grok-dev
mailing list