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

ASF GitHub Bot commented on TIKA-4630:
--------------------------------------

tballison opened a new pull request, #2551:
URL: https://github.com/apache/tika/pull/2551

   <!--
     Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information
     regarding copyright ownership.  The ASF licenses this file
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
   
     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
     specific language governing permissions and limitations
     under the License.
   -->
   
   Thanks for your contribution to [Apache Tika](https://tika.apache.org/)! 
Your help is appreciated!
   
   Before opening the pull request, please verify that
   * there is an open issue on the [Tika issue 
tracker](https://issues.apache.org/jira/projects/TIKA) which describes the 
problem or the improvement. We cannot accept pull requests without an issue 
because the change wouldn't be listed in the release notes.
   * the issue ID (`TIKA-XXXX`)
     - is referenced in the title of the pull request
     - and placed in front of your commit messages surrounded by square 
brackets (`[TIKA-XXXX] Issue or pull request title`)
   * commits are squashed into a single one (or few commits for larger changes)
   * Tika is successfully built and unit tests pass by running `mvn clean test`
   * there should be no conflicts when merging the pull request branch into the 
*recent* `main` branch. If there are conflicts, please try to rebase the pull 
request branch on top of a freshly pulled `main` branch
   * if you add new module that downstream users will depend upon add it to 
relevant group in `tika-bom/pom.xml`.
   
   We will be able to faster integrate your pull request if these conditions 
are met. If you have any questions how to fix your problem or about using Tika 
in general, please sign up for the [Tika mailing 
list](http://tika.apache.org/mail-lists.html). Thanks!
   




> embeddedRelationshipId is missing from tar files that are children of gzip 
> files (i.e. tarballs)
> ------------------------------------------------------------------------------------------------
>
>                 Key: TIKA-4630
>                 URL: https://issues.apache.org/jira/browse/TIKA-4630
>             Project: Tika
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 3.2.3
>            Reporter: Iachimoe
>            Assignee: Tim Allison
>            Priority: Major
>         Attachments: tika-embedded-reln-jira.PATCH
>
>
> For some context, my usecase requires me to be able to precisely locate 
> individual files within nested archives, using only metadata from tika.
> I have made this work for zip files using a combination of 
> EMBEDDED_RELATIONSHIP_ID and EMBEDDED_RESOURCE_PATH. EMBEDDED_RESOURCE_PATH 
> on its own does not work because it omits information about which directory a 
> file is stored in within an archive. When trying to make it work for tgz 
> files, the approach breaks because, while the parser quite reasonably 
> considers "archive.tar" to be a child of "archive.tar.gz", the corresponding 
> entry metadata lacks an EMBEDDED_RELATIONSHIP_ID. This makes it difficult to 
> construct a path of the form 
> "archive.tar.gz/archive.tar/my_folder/my_file.txt".
> I attach a rough solution (patch is against branch_3x), with unit test, that 
> appears to work for my use case. The approach is for the 
> RecursiveParserWrapper to set EMBEDDED_RELATIONSHIP_ID once parsing has 
> completed if it has not been set during the parsing process. It sets it to 
> the value of RESOURCE_NAME_KEY , which is probably not ideal, but in practice 
> it seems to contain the filename and parent folders within the archive. 
> Although the aim was to make this work for tar files, the unit test 
> demonstrates that it has a similar effect for chidren of ODT files (this was 
> an accident as the test archive that was already in the codebase happened to 
> have ODT files).
> I could not find descriptions of exactly what EMBEDDED_RELATIONSHIP_ID and 
> EMBEDDED_RESOURCE_PATH are meant to represent, so I'm not sure whether this 
> approach is heading in the right direction, though it seems to work for my 
> usecase. A future enhancement could be for the recursive parser to include a 
> new field with the complete path to each file (again, imagining nested 
> archives it might look something like 
> "archive.tar.gz/archive.tar/folder1/nested.zip/folder2/file.txt").
> Looking forward to everybody's thoughts, and happy to make refinements to the 
> proof of concept attached as needed.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to