项目中在使用 sentry 上传事件的 attachment 函数过程中发现,附带的 log 文件是未压缩的,于是有了需求,即需要在 sentry 内部将未压缩的文件流压缩后再上传给服务器
这个需求看似挺简单的,其实过程挺坎坷的,因为要看 sentry 的源码,并对 zlib 的库有一定的了解才行。
这个文章为了以后同样有此需求的人作参考。
sentry 分为 sentry 源码和 crashpad 源码两部分,日常使用中,我们可以利用 sentry 自带的崩溃自动上传机制查看崩溃时的堆栈,不过堆栈只能看见崩溃的地方(局部的几个函数),并不能知晓
用户上下文的行为,复现一个崩溃要了解用户是以什么样的“动作”触发的,所以在崩溃时能够看到调试日志,对于开发人员来说是很重要的,不过在阅读 sentry 源码发现,sentry 附加的文件是从本地读取的,
也就是说 sentry 内部拿到本地文件的路径,传给 fopen 和 fread,并且内部没有集成压缩的 api,需要我们修改源码来实现压缩。
标签:文件,压缩,sentry,压缩文件,源码,上报,崩溃 From: https://www.cnblogs.com/strive-sun/p/16667017.html