我正在尝试使用mysql后端构建一个python-eve REST API,我希望有一个自定义的mediastorage后端。基本上我希望文件名保存到数据库和文件系统中的文件中。
以下是基于GridFS的媒体存储草案:
class CustomMediaStorage(MediaStorage):
def __init__(self, app=None):
super(CustomMediaStorage, self).__init__(app)
self.validate()
def validate(self):
if self.app is None:
raise TypeError('Application object cannot be None')
if not isinstance(self.app, Flask):
raise TypeError('Application object must be a Eve application')
def get(self, path, resource=None):
pprint(path)
_file = None
try:
_file = open(path, 'r')
except:
pass
return _file
def post(self, content, filename=None, content_type=None, resource=None):
pprint('post')
if(filename):
path = 'var/www/koodit/upload/'+filename
try:
_file = open(path, 'w')
_file.write(content)
_file.close()
except:
pass
return path
我的具体问题是,当类捕获get方法时,post-method似乎甚至无法打印出注释。
以这种方式调用媒体存储:
app = Eve(data=SQL,settings=SETTINGS, media=CustomMediaStorage)
从客户端我尝试将图像发送为base64。
"文件是预期的,获得了数据:image / jpeg; base64,/ 9j / 4AAQSkZJRgABAgAAAQABAAD / 7QCEUGhvdG9zaG9wIDMu ... 代替"。,