能否通过传入mbox数据而非磁盘路径使用mstor API读取mbox文件
mstor读取mbox相关问题解答
能否不依赖磁盘路径,直接传入内存中的mbox数据?
mstor官方实现强绑定本地文件系统,底层解析逻辑完全基于java.io.File对象设计,没有提供基于字节数组、InputStream等内存数据载体的接入入口,目前没有公开的稳定落地案例可以绕开磁盘路径要求完成读取。
你查阅到的是官方唯一支持的标准调用方式:
final Store store = session .getStore(new URLName("mstor:" + <path>));
如果要强行实现内存数据直接读取,只能自行fork mstor源码修改底层解析逻辑,剥离对本地文件的依赖,改造成本较高,性价比很低。
写入临时文件调用API的方案是否可行?
该方案完全可行,也是生产环境处理该场景的主流折中方案,落地时注意以下几点即可:
- 使用JDK自带的
Files.createTempFile创建临时文件,默认会生成在系统临时目录,且默认权限仅创建者可读写,避免mbox数据泄露 - 不管处理流程正常结束还是抛出异常,都要确保临时文件被删除:可以在
finally代码块主动调用删除方法,同时给文件注册deleteOnExit钩子做双重保障 - 若业务中会收到大体积mbox文件,提前评估系统临时目录的磁盘配额,避免存储空间不足导致处理失败
内容的提问来源于stack exchange,提问作者Morkus
相关产品推荐
相关产品推荐

