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

Oliver Lietz commented on SLING-4694:
-------------------------------------

The content/mime type detector should really be general so it could be used in 
other bundles. I've started work on a detector in content loader, but have 
currently no time to continue:

{noformat}
public interface ContentTypeDetector {

    String detectContentType(InputStream contentStream, String filename);

}
{noformat}

[~tomek.rekawek], this classes should be removed as they are not used right 
now. Do you still work on content loader and clean up further?

> SlingWebDavServlet should have a configurable Tika detector
> -----------------------------------------------------------
>
>                 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