我有InputStream
的自定义实现,目前可以更新多个MessageDigest
- 并在读取数据时。这允许单个读取和处理数据,并且避免必须重新读取文件以便计算它们的校验和。这非常有效并节省了时间(并在here中实现)。
作为后续步骤,我想使用Apache Tika从流中猜测文件扩展名,该文件扩展名是通过HTTP发送的。我知道你们中的一些人会建议简单地设置Content-Type
标题并要求它设置,但不幸的是,出于各种原因,我们不能依赖于此,或强制执行它。因此,我正在寻找一种方法来根据InputStream
猜测扩展程序,同时发送它。
我们还需要能够猜测复杂的扩展类型(例如tar.gz
,tar.bz2
和其他类似的扩展类型,只需从最后一个索引做一个子字符串就不容易猜到直到字符串结尾的点。)
最有效的方法是什么?我们无法读取内存中的所有文件,因为应用程序必须能够处理大量并发请求。有人可以提供一个例子,说明如何做到这一点?