Absolutely. Use some combination of SplitText, SplitContent, SplitJSON, and 
ExtractText to split the content into multiple flowfiles on regular 
expressions, new lines, and/or byte sequences and then RouteOnContent to send 
the flowfiles which reference a file to a processor to retrieve/parse the file 
contents.

Andy LoPresto
[email protected]
[email protected]
PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4  BACE 3C6E F65B 2F7D EF69

> On Feb 27, 2017, at 2:08 PM, mohammed shambakey <[email protected]> wrote:
> 
> This is an example of the output file from "handlehttprequest":
> 
> "
> -----------------------------831805444208556434014280960^M
> Content-Disposition: form-data; name="userid"^M
> ^M
> jpl_user^M
> -----------------------------831805444208556434014280960^M
> Content-Disposition: form-data; name="scripts"; filename="a.py"^M
> Content-Type: text/x-python^M
> ^M
> ^M
> -----------------------------831805444208556434014280960^M
> Content-Disposition: form-data; name="scripts"; filename="b.py"^M
> Content-Type: text/x-python^M
> ^M
> ^M
> -----------------------------831805444208556434014280960^M
> Content-Disposition: form-data; name="scripts"; filename="conf.json"^M
> Content-Type: application/json^M
> ^M
> {
> "userid":"jpl_user_1",
> "scripts":["a.py","b.py"]
> }
> ^M
> -----------------------------831805444208556434014280960--^M
> "
> 
> Can I extract different components of this file without script at server side?
> 
> Regards
> 
> On Mon, Feb 27, 2017 at 10:52 AM, Andy LoPresto <[email protected] 
> <mailto:[email protected]>> wrote:
> Mohammed,
> 
> So from what I understand you have a separate web application which accepts a 
> variety of data (a combination of form fields and file uploads) and submits 
> that (I’m assuming via POST) to NiFi. I’m not sure what problem you had 
> extracting these “components” from the output flowfile from the 
> HandleHTTPRequest processor. Can you change your web interface to send 
> separate POST requests to NiFi and logically separate these components from 
> the beginning? Can you modify the format of the request (i.e. make it JSON, 
> etc.) so it is properly structured for NiFi to parse and operate on this data?
> 
> NiFi treats the content of the flowfile the same once it is in the system 
> regardless of the source processor, so you should be able to split, extract, 
> or manipulate the contents of a single flowfile containing multiple form 
> elements and file bodies.
> 
> If you are referencing NiFi’s Input Port components as a destination for an 
> arbitrary HTTP request, this will not work. The input ports are designed to 
> work with NiFi’s Site to Site protocol (either over raw sockets or HTTP(S)).
> 
> 
> Andy LoPresto
> [email protected] <mailto:[email protected]>
> [email protected] <mailto:[email protected]>
> PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4  BACE 3C6E F65B 2F7D EF69
> 
>> On Feb 27, 2017, at 11:09 AM, mohammed shambakey <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Thanks Andy
>> 
>> I have a user web interface that send some form information (e.g., user id), 
>> as well as upload multiple files, to a remote NIFI instance. When using 
>> "handlhttprequest" processor, it results in a single file that contains 
>> "form inputs" and bodies of uploaded files.
>> 
>> I want to extract individual components of this file (i.e., download all 
>> uploaded files and extract other form information (e.g., userid) in a JSON 
>> or other text file. I had a similar problem before and I learnt that 
>> "httphandlerequest" has a problem to extract individual compoents from, so I 
>> have to write my own scripts to extract these components (form inputs and 
>> uploaded files).
>> 
>> As NIFI input ports does not face this problem of "handlehttprequest", I 
>> though if I can send form inputs and upload files directly to "NIFI input 
>> port" at remote site, then I don't have to write my own scripts to extract 
>> individual components.
>> 
>> Regards
>> 
>> On Mon, Feb 27, 2017 at 10:02 AM, Andy LoPresto <[email protected] 
>> <mailto:[email protected]>> wrote:
>> Mohammed,
>> 
>> I’m not sure I understand your question. NiFi has a REST API which supports 
>> the UI and allows scripts/other applications to make requests of the 
>> platform. This runs on the input port specified in nifi.properties.
>> 
>> If you want to submit form data and uploaded files as data to be ingested by 
>> NiFi, HandleHTTPRequest or (less likely) ListenHTTP are the processors you 
>> would want to use.
>> 
>> If you can clarify your use case, we should be able to offer more assistance.
>> 
>> Andy LoPresto
>> [email protected] <mailto:[email protected]>
>> [email protected] <mailto:[email protected]>
>> PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4  BACE 3C6E F65B 2F7D EF69
>> 
>>> On Feb 27, 2017, at 9:15 AM, mohammed shambakey <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> Hi
>>> 
>>> Is it possible to send http request (including form data and uploaded 
>>> files) to NIFI input port instead of "HandleHTTPRequest" processor?
>>> 
>>> Regards
>>> 
>>> --
>>> Mohammed
>> 
>> 
>> 
>> 
>> --
>> Mohammed
> 
> 
> 
> 
> --
> Mohammed

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to