def file_page(page, size=10, ftype='image', callback=None): db = get_context().get_asyncmongo() if ftype == 'image': fs = GridFS(db, THUMBNAIL_GFS) elif ftype == 'file': fs = GridFS(db, FILE_GFS) fs.find(skip=(page + 1) * size, limit=size, callback=None)
def del_image(fid): fid = ObjectId(fid) db = get_context().get_asyncmongo() tfs = GridFS(db, THUMBNAIL_GFS) yield gen.Task(tfs.delete, fid) fs = GridFS(db, IMG_GFS) yield gen.Task(fs.delete, fid)
def get_file(fid, ftype, callback=None): db = get_context().get_asyncmongo() if ftype == 'image': fs = GridFS(db, IMG_GFS) elif ftype == 'thumbnail': fs = GridFS(db, THUMBNAIL_GFS) elif ftype == 'file': fs = GridFS(db, FILE_GFS) fid = ObjectId(fid) fs.get(fid, callback=callback)
def put_image(body, filename, fmt, **kwargs): db = get_context().get_asyncmongo() kwargs.update(filename=filename) fs = GridFS(db, IMG_GFS) try: body = _resize_image(body, fmt, __conf__.IMG_MAX_SIZE) fid = yield gen.Task(fs.put, body, **kwargs) thumbnail = _resize_image(body, fmt, __conf__.THUMBNAIL_SIZE) tfs = GridFS(db, THUMBNAIL_GFS) tfid = yield gen.Task(tfs.put, thumbnail, _id=fid, **kwargs) except Exception as e: yield gen.Task(fs.delete, fid) print e raise raise gen.Return(fid)
def put_file(body, filename, **kwargs): db = get_context().get_asyncmongo() fs = GridFS(db, FILE_GFS) kwargs.update(filename=filename) fs.put(body, **kwargs)