[ https://issues.apache.org/jira/browse/SLING-4694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14549909#comment-14549909 ]
Satya Deep Maheshwari commented on SLING-4694: ---------------------------------------------- >>Apart from that, are you planning more changes to your >>bundles/commons/contentdetection module? Nothing apart from a few clean up tasks around UTs and docs. And some code cleanup as per https://maven.apache.org/developers/conventions/code.html. I'll complete them and create a separate PR with just the contentdetection module changes. I would be delighted if this module can be useful for others and can become part of sling. On the webdav servlet, the check is not only in the 'activate' method but also in 'update' method and hence gets called whenever 'detectionmode' is changed or the ContentAwareMimeTypeService get's binded/unbinded. Do you think it mitigates your concern on the service becoming available/unavailable later? >>I'd rather use a detectMimeType method which decides to use >>ContentAwareMimeTypeService or MimeTypeService right when the detection >>happens, to be more dynamic. 'detectMimeType is called by the SlingTikaDetector which does not know about the detectionMode set on it invoker somewhere down the call stack. Could you please provide some guidance as to how 'detectMimeType' can decide dynamically? Maybe I'll log a separate jira for this webdav related change and we can take it forward there and limit this jira for the contentdetection module only. > 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)