async mongodb gridfs with tornado IOLoop
Project description
asyncgridfs
===========
async mongo gridfs for tornado
Installation
------------
Installing: `pip install asyncgridfs` or ` easy_install asyncgridfs`
Usage
-----
import asyncmongo
import tornado.web
from asyncgridfs import GridFS
class Handler(tornado.web.RequestHandler):
@property
def db(self):
if not hasattr(self, '_db'):
self._db = asyncmongo.Client(pool_id='mydb', host='127.0.0.1', port=27017, maxcached=10, maxconnections=50, dbname='test')
return self._db
@tornado.web.asynchronous
def get(self):
fid = self.get_argument('fid')
fs = GridFS(self.db)
fs.get(ObjectId(fid),callback=self._on_get)
@tornado.web.asynchronous
def post(self):
f = self.request.files['imgFile'][0]
content = f.pop('body')
content_type = f.pop('content_type')
filename = f.pop('filename')
fs = GridFS(self.db)
fs.put(content, contentType=content_type, filename=filename, callback=self._on_post)
def _on_get(self, fileobj):
self.set_header('Content-Type', fileobj['contentType'])
self.write(fileobj['data'])
self.finish()
def _on_put(self, _id):
self.write(str(_id))
self.finish()
===========
async mongo gridfs for tornado
Installation
------------
Installing: `pip install asyncgridfs` or ` easy_install asyncgridfs`
Usage
-----
import asyncmongo
import tornado.web
from asyncgridfs import GridFS
class Handler(tornado.web.RequestHandler):
@property
def db(self):
if not hasattr(self, '_db'):
self._db = asyncmongo.Client(pool_id='mydb', host='127.0.0.1', port=27017, maxcached=10, maxconnections=50, dbname='test')
return self._db
@tornado.web.asynchronous
def get(self):
fid = self.get_argument('fid')
fs = GridFS(self.db)
fs.get(ObjectId(fid),callback=self._on_get)
@tornado.web.asynchronous
def post(self):
f = self.request.files['imgFile'][0]
content = f.pop('body')
content_type = f.pop('content_type')
filename = f.pop('filename')
fs = GridFS(self.db)
fs.put(content, contentType=content_type, filename=filename, callback=self._on_post)
def _on_get(self, fileobj):
self.set_header('Content-Type', fileobj['contentType'])
self.write(fileobj['data'])
self.finish()
def _on_put(self, _id):
self.write(str(_id))
self.finish()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file asyncgridfs-0.2.1.dev-py2.7.egg
.
File metadata
- Download URL: asyncgridfs-0.2.1.dev-py2.7.egg
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ff959540a4f89126989664267f01fb6e26c0d7b8314702d19391231e3b63f96 |
|
MD5 | 9dd87c0ed89623a7b160c803171f6a76 |
|
BLAKE2b-256 | 219b385f584d73073eeab6f37fd0d32687a116eda4893efd31715fa027f4a502 |