Thank you Mike. May I ask a few follow-up Qs after trying this and failing
still?

ExecuteStreamCommand works on the contents of the incoming flowfile, is
that understanding correct? If so, then why does it matter where the file
sits on the filesystem if it will apply /bin/7za to the flowfile in the
stream?

So I have /bin/7za in the /bin directory, it's an executable program, and
the user that the nif jvm is running as - user named nifi - has /bin in its
path.

I have an archive file I created in directory /mnt/in, and it is named
testArchive.7z. I am successfully able to read that archive file in with a
ListFile / FetchFile, and do get it in my stream. These are its attributes:
absolute.path   /mnt/in/
filename   testArchive.7z

Is this java io exception telling us that it can't find the /bin/7za
program, or it can't find the data itself? And if ExecuteStreamCommand is
supposed to be applying that command to the flowfile in the stream, why is
it important that the archive file exists on disk where
ExecuteStreamCommand can find it?

On Wed, Sep 21, 2022 at 11:07 AM Mike Thomsen <[email protected]>
wrote:

> To do this, you need to do UpdateAttribute (to set the temp folder
> location) -> PutFile -> ExecuteStreamCommand to ensure the flowfile's
> contents are staged where 7za can find them.
>
> I think the appropriate parameter would be something like this:
>
> Command Arguments: e;${path}/${filename}
>
> Assuming ";" is the argument delimiter.
>
> On Wed, Sep 21, 2022 at 10:45 AM James McMahon <[email protected]>
> wrote:
> >
> > Hello. I have a program /bin/7za that I need to apply to flowfiles  that
> were created by 7za. One of them is testArchive.7z.
> >
> > I try to employ an ExecuteStreamCommand to extract from an incoming
> flowfile to into N output flowfiles in output stream, each representing one
> file from the contents in the flowfile.
> >
> > ESC throws error=2, No such file or directory.
> >
> > java.io.Exception: Cannot run program "/bin/7za"": error=2, No such file
> or directory
> >
> > My ExecuteStreamCommand processor has this configuration:
> > Command Arguments    e
> > Command Path   /bin/7za
> > Ignore STDIN   false
> > working Directory   no value set
> > Argument Delimiter   ;
> > (I do not set an Output Destination Delimiter, intending to send the
> output to output path "output stream" as separate flowfiles)
> >
> > How can I fix this problem?
> >
> > Thanks in advance,
> > Jim
>

Reply via email to