Re: Size of nifi flowfile in Groovy script

James McMahon <[email protected]>
Newsgroups gmane.comp.lang.groovy.user
Message-ID <CAEqJCe0nQABivqnjPmR-HR_7DmQq_pXT+DceVydJWUEyv-H0CA@mail.gmail.com>
It turns out you can access it in a Groovy script directly through ff, as
ff.size. It appears to return a result in bytes.

import org.apache.nifi.processor.ProcessContext
import org.apache.nifi.processor.ProcessSession
import org.apache.nifi.processor.io.InputStreamCallback
import org.apache.nifi.flowfile.FlowFile

def ff = session.get()
if (!ff) return  // Exit if no flow file is available

try {
    // Retrieve and log all attributes
    ff.getAttributes().each { key, value ->
        log.info("Attribute: ${key} = ${value}")
    }

    // Log the fileSize system attribute
    log.info("System Attribute - fileSize: ${ff.size}")

    ff = session.putAttribute(ff, 'file_size', ff.size.toString())

    // Transfer the flow file to the next stage in the flow
    session.transfer(ff, REL_SUCCESS)
} catch (Exception e) {
    log.error("Error processing flow file", e)
    session.transfer(ff, REL_FAILURE)
}

On Sat, Jun 15, 2024 at 5:14 PM James McMahon <[email protected]> wrote:

> Hello. I am trying to determine a way to get the size of a NiFi flowfile
> within a Groovy script. Has anyone done this before, and can tell me how to
> do this from within Groovy?
>
> This
> https://jameswing.net/nifi/nifi-internal-fields.html
> describes fileSize as a hidden field that can be accessed via expression
> language, but I do not see how I can reference that in a Groovy script.
>
> Thanks in advance for any help.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.