我正在使用Sling MimeTypeService以获得给定文件的适当扩展名&尝试使用我自己的扩展名覆盖默认扩展名。
E.g。如果我有方法:
@Reference
MimeTypeService mimeTypeService;
public void getPlainTextAsDiff() {
mimeTypeService.registerMimeType("text/plain", ".diff");
mimeTypeService.getExtension("text/plain"); //returns ".txt"
}
这将返回“.txt”而不是“.diff”,忽略方法的第一行。 这似乎与文档一致:
MIME类型可以映射到多个扩展名(例如text / plain to txt,log,...)。预计此方法将返回其中一个 扩展。 由实施来选择合适的 如果单个MIME类型存在多个映射,则为扩展名。
[我的重点]
我想知道是否有可能以某种方式规避这种情况,例如:取消注册mime-type或对可用的那些进行排名,以便在上面的情况下“diff”会保证返回?
答案 0 :(得分:1)
您可以通过提供MimeTypeProvider服务来扩展mime类型映射,但查看MimeTypeServiceImpl代码,看起来它们不按服务排名排序。如果我没有问题,您将无法确定MimeTypeProviders的优先顺序。您可能希望尝试此操作并提交增强请求或修补程序。