我正在开发一个SDK,该SDK可以验证传入的multipart / form-data文件并将其保存到服务器端的磁盘上。就像是:
sdk.upload(httpRequest, destinationPath, validationOptions) 我需要传入的http请求:字段名,文件名,文件和mime类型。
问题在于python框架具有不同的http请求对象:
Django:HttpRequest request.FILES包含文件 烧瓶:请求 request.files包含文件。 金字塔:request.POST包含文件。 对于files字典中的文件值对象,结构相同。
我需要的是一个统一/通用的http请求对象或另一种以一种方式处理该请求的解决方案。
可能的不便解决方案:
每个框架都有不同的实现:我想以一种通用的方式来处理它。 使用lib解析multipart / form-data:由于框架已经解析过一次,因此实际上将是重新解析。 其他语言的示例:
PHP:$ _FILES对象 NodeJS:可读流请求 ASP.NET:静态HttpContext.Current.Request
所有框架都实现WSGI协议https://www.python.org/dev/peps/pep-0333/。这是常见的基本机制,他们在此之上构建了自己的便利功能。您总是可以回到原始的WSGI。
上载完成后,有一个通用的框架来存储和处理文件:仓库http://depot.readthedocs.io/en/latest/
例如,您可以获取原始WSGI数据并在每个框架http://webob.org/中从中生成WebOb Request对象。
另请参阅Authomatic以获得灵感http://peterhudec.github.io/authomatic/
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。