[
https://issues.apache.org/jira/browse/SLING-4694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Satya Deep Maheshwari updated SLING-4694:
-----------------------------------------
Comment: was deleted
(was: >>Best is probably to create a new commons/content-detection bundle
If I create a separate bundle, I lose the ability to extend the existing
concrete implementation of MimeTypeServiceImpl which is an internal class of
commons/mime bundle. Either I can copy it over to the new bundle or make it
abstract and export it from commons/mime. I would prefer to not do any of
these. Is there another way to do this?)
> Add ability to identify mime type based on file content
> -------------------------------------------------------
>
> Key: SLING-4694
> URL: https://issues.apache.org/jira/browse/SLING-4694
> Project: Sling
> Issue Type: Improvement
> Components: Servlets
> Affects Versions: JCR Webdav 2.2.2
> Reporter: Satya Deep Maheshwari
>
> *Problem description:* I am facing a problem with the mime type detection of
> a file. While debugging, I see that SlingTikaDetector.detect method is used
> for detecting the mime type of my file. See [1]. This method just seems to
> rely on the name of the file for detecting its mime type. Even though its
> passed an inputstream of the file, it does not seem to use it for mime type
> detection. So if my file name is something like xyz.tmp, it detects its mime
> type as application/octet-stream (the default) while it may actually be a png
> file. This is a common scenario with webdav clients wherein temporary files
> get created with such names while being edited.
> *Suggested Solution:*
> Quoting [~rombert]
> {quote}
> Following the discussions at SLING-1059 [1] and SLING-255 [2] I can
> infer that we more or less opted out of the 'heavy-weight' approach of
> actually parsing the input stream. Not sure if we want to revisit that
> TBH. At any rate, our MimeTypeService does not have an API for getting
> the file content based on the input stream.
> I think though there's a way around it, but only at the code level.
> The org.apache.sling.jcr.webdav.impl.helper.SlingResourceConfig class
> hardcodes the Detector implementation to be a SlingTikaDetector.
> I think it is worthwile to raise a Jira issue for this and it would
> definitely expedite the fix if you're willing to submit a patch / pull
> request. I think it can be as simple as adding a @Reference to a Tika
> Detector to the SlingWebDavServlet and then passing that to the
> SlingServletConfig.
> Cheers,
> Robert
> [1]: https://issues.apache.org/jira/browse/SLING-1059
> [2]: https://issues.apache.org/jira/browse/SLING-255
> {quote}
> Related mailing-list thread on this:
> http://apache-sling.73963.n3.nabble.com/mime-type-detection-td4050586.html
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)