python-eve自定义媒体存储文件上传不起作用

时间:2016-08-15 16:10:25

标签: storage media eve

我正在尝试使用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 ... 代替"。,

0 个答案:

没有答案