Groovy 使用executescript将文件内容加载到nifi属性中

Groovy 使用executescript将文件内容加载到nifi属性中,groovy,apache-nifi,Groovy,Apache Nifi,我试图将文件的内容加载到属性中,并在其前面加上“Bearer”。这就是我取得的成绩: def flowFile = session.get(); if (flowFile != null) { def token = flowFile.getAttribute("token") def message = "Bearer " + token flowFile = session.putAttribute(flowFile, "message", message)

我试图将文件的内容加载到属性中,并在其前面加上“Bearer”。这就是我取得的成绩:

def flowFile = session.get();
if (flowFile != null) {

    def token = flowFile.getAttribute("token")
    def message = "Bearer " + token
    flowFile = session.putAttribute(flowFile, "message", message)
    session.transfer(flowFile, REL_SUCCESS)
}
但是,我一直在尝试加载文件内容,而不是使用.getattribute。有人能帮我吗


编辑:要确认,这是加载txt文件的内容。

您需要使用流文件和InputStreamCallback调用session.read

这里有一个例子:


您可以将
ExecuteGroovyScript
与以下代码一起使用,以读取流文件内容并将其放入属性中:

def ff = session.get()
if(!ff)return

ff.message = "Bearer " + ff.read().getText("UTF-8")
REL_SUCCESS << ff
def ff=session.get()
如果(!ff)返回
ff.message=“Bearer”+ff.read().getText(“UTF-8”)

嗨,Daggett,谢谢你这么做。请问,我应该在哪里定义文件的位置,是这样的吗?读取(路径/to.file.txt)…啊。你是说文件(不是流文件)对不起,是的,我不清楚,我是说从文本文件中,将整个内容读入流文件属性。该文件的内容将始终非常小。修改后的应答器应能正常工作。但请确保您使用的是ExecuteGroovyScript(不是ExecuteScript)