[ 
https://issues.apache.org/jira/browse/SLING-4694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14532543#comment-14532543
 ] 

Satya Deep Maheshwari commented on SLING-4694:
----------------------------------------------

>>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)

Reply via email to