解析并生成内容部署头;rfc6266的fork和错误修复。
rfc6266-parser的Python项目详细描述
RFC6266分析器
此模块解析并生成httpContent-Disposition头。 这些头在获取下载资源时使用; 它们提供了是否应该下载文件的提示, 以及保存时要使用的文件名。
差异RFC6266
这个模块是rfc6266的一个分支,其中包括最新的错误修复 'nullhandler应该是一个实例,而不是一个类' 版本为0.0.5。
用法
接收器
parse_headers从 Content-Disposition头和(作为后备)文档 地点。快捷方式处理来自httplib2的响应对象 以及请求库。
ContentDisposition的重要属性是is_inline, filename_unsafe,filename_sanitized。
发件人
build_header从文件名生成头值。
安全性
应小心使用Content-Disposition文件名。 不要让发件人覆盖任意文件系统位置, 选择具有特殊含义的任意扩展名或文件名, 选择包含不寻常或误导性字符等的文件名。 阅读RFC 6266第4.3节了解更多详细信息。
测试
要在当前python实现中进行测试:
py.test
要测试python版本之间的兼容性,请执行以下操作:
tox
RFC6266解析器目前在Python2.7、Python2.6和 python 3.4、python3.3和pypypy(1.7)。
参考文献
- RFC 6266<;https://tools.ietf.org/html/rfc6266>; 指定内容处理头
- RFC 5987<;https://tools.ietf.org/html/rfc5987>; 指定对非ascii文件名进行编码的方法
- tc 2231<;http://greenbytes.de/tech/tc2231/>; 是内容处理头的测试套件