解析s3日志文件的库。
ls-s3-logs的Python项目详细描述
解析s3日志文件的python库。
警告
单元测试当前需要实际的s3凭证(以及一个带有日志的bucket),因此只能手动运行。 模仿boto.s3的相关部分是路线图。欢迎投稿:)
目的
从bucket下载s3日志,并解析它们。
此应用程序不存储生成的日志对象,而将其留给其他应用程序。
安装
最终来自pypi…
使用
要获取日志,只需使用downloader类:
from itertools import chain from pprint import pprint from lss3logs.download import Downloader MY_ACCESS_KEY_ID = 'XXX' MY_KEY_SECRET = 'XXX' MY_S3_BUCKET_NAME = 'XXX' downloader = Downloader( connection=None, aws_access_key_id=MY_ACCESS_KEY_ID, aws_key_secret=MY_KEY_SECRET, ) # download 10 logs logs = downloader.download_files( MY_S3_BUCKET_NAME, prefix='logs/', max_logs=1) entries = [ log.entries for log in logs ] entries = list(chain.from_iterable(entries)) [pprint(entry.__dict__) for entry in entries]
运行测试
首先需要指定测试配置,其中包含aws凭据和bucket tot test with的详细信息。 python testconfig用于管理测试配置。
将test_config.ini.sample复制到test_config.ini(在同一目录中)并设置正确的值:
export NOSE_TESTCONFIG_AUTOLOAD_INI=`pwd`/test_config.ini
用鼻子测试:
python setup.py nosetests
或者直接进行鼻子测试:
nosetests -s --exe
直接覆盖:
nosetests -s --exe --with-coverage --cover-package=lss3logs
(注意:–exe包含可执行的python文件,因此如果没有,则它是可选的。)
代码质量
使用Pylint检查代码:
pylint lss3logs
待办事项
- 模拟boto输出(请参见https://github.com/eykd/duo/blob/master/test_duo.py以获取示例)
- 尽可能多地修复pylint报告的错误
- 使测试覆盖率达到100%
- 对文档使用sphinx