如何使用NiFi获取S3存储桶中文件的所有者信息?
NiFi ListS3获取文件所有者信息的解决办法
给你几个可行的解决办法:
用FetchS3Object提取元数据:ListS3本身只返回S3对象的基础信息,要拿所有者这类元数据,在ListS3后面接
FetchS3Object处理器就行。开启处理器里的Fetch Object Metadata Only选项(不用下载文件内容,省流量),之后生成的FlowFile会带上S3对象的元数据属性,其中owner-id对应所有者ID,owner-display-name对应所有者显示名称。自定义属性映射(可选):如果需要把属性名改成更贴合你业务的格式,在FetchS3Object之后加个
UpdateAttribute处理器,把原生的S3元数据属性重命名,比如把owner-display-name改成file-owner,方便后续流程调用。用ExecuteScript调用AWS SDK:如果上面的方法满足不了特殊需求,可以用
ExecuteScript处理器(选Python或Groovy),调用AWS S3 SDK直接拉取对象的所有者信息。比如用Python的boto3库,通过对象key获取Owner字段,再把信息添加为FlowFile属性。注意要给NiFi配置对应的SDK依赖包。
内容的提问来源于stack exchange,提问作者KnowledgeSeeker
相关产品推荐
相关产品推荐

