Support Questions

Find answers, ask questions, and share your expertise
Check out our newest addition to the community, the Cloudera Data Analytics (CDA) group hub.

FetchFile x Windows


Good afternoon,


Is there a way to use the FetchFile 1.16.2 processor to access files from Windows when the Nifi application is on Linux?



This is the flow I'm working on, I'm using the UpdateAttribute to enter the path of a Windows network directory to get the .PDF files, but it throws the error below.


I must be doing something wrong or missing some other processor.








Hi @leandrolinof

FetchFile gets the file from the host system, in your case try GetSmbFile or mount remote share into Linux first and then use FetchFile.




Thank you very much for your tip, it worked, but I have some doubts about how to use this GetSmbFile processor.


1 - I need to send a formatted E-mail body for each case and I would be able to do that with the previous processors I was using. How can I do this?


2 - Is there a way for the PDF file to be moved from one directory to another with this processor? I noticed that it manages to delete the file from the directory, but that is not what I wanted, I would like to move it from a send to sent directory for example.


3 - Is it an input-only processor? I can't connect it to any other processor before? Is he the first in the stream?


1 - it accepts no incoming connections, so I'd rather rebuild process around it or used distributed cache services. Try something like this:

  • get file from smb
  • put file to distributed cache while keeping it's identifier in an attribute
  • generate email body with replacetext or w/e you use and put it into attribute
  • fetch file from distributed cache
    use putemail with Attach File - true and Flow file content as message - false, set Message as an attribute with a body.

2 - process deletes files when Keep Source File property set to "false" (default configuration), to move file combine GetSmbFile (Keep Source File to false) with PutSmbFile.

3 - yep, as mentioned in 1, it's input/flowfile-generative processor, it should stay first in the stream.




How do I store the Flow content that brings the PDF to a property so the content doesn't get lost in the Nifi Flow?


You store it into the cache with PutDistributedMapCache processor, you need the property to fetch the file back. DistributedMapCacheClientService controller and DistributedMapCacheServer controller are used with beforementioned processor.


When you need the pdf you use FetchDistributedMapCache and get the flowfile back into the flow.




Would you have any example to give me about the functioning of these processors?

Sorry for my little knowledge.


Ok, I made two sample flows:

the simple one just to put pdf almost straight to email: 



And here is the one with caches, if you have a complex process to build email body:


Use default configs for these two controllers, at first it should be enough


Increase entry size accordingly to your max pdf size, for Identifier use either filename or whatever you think does the job:


Use same Identifier to fetch object





I'm trying to make an example with the model you gave me, but when I get to the PutDistributedMapCache processor it gets stuck and doesn't go forward, neither success nor failure.


Am I doing something wrong with the Distributed Cache Service?








yep, use default port and localhost as a hostname, also don't  forget to start a cache server on the same port




Do I need to create some kind of service on the Linux server where Nifi is running for this before?


no, just another controller as shown at >Use default configs for these two controllers, at first it should be enough

it'll work as a server by itself




I did not understand it.


There should be two controllers configured:






Client is, eh, client, server is a backend for your cache.

Without server client has nowhere to send a flowfile.

Super Collaborator


I dont think it matters which system the path is located as long you have access to it. Do you have access to the path \\\nifi from the machine where nifi is deployed? I'm not Linux expert but you need to test if the path with the file name is accessible by doing some system command or trying to access via file explorer.





I can connect to the Windows directory both from another windows machine and from this linux machine that I'm using Nifi, but I'm not able to use the FetchFile processor, it throws the POST error.

Take a Tour of the Community
Don't have an account?
Your experience may be limited. Sign in to explore more.