Nifi 将流文件属性添加到 S3 对象 (PutS3Object) 元数据
Nifi add flow file attributes to S3 Object (PutS3Object) Metadata
我有一个简单的流程,包括
GenerateFlowFile ----> PutS3Object ----> 等待
并且生成的流文件正确存储在存储桶中。
现在我想将元数据添加到我的流程文件中。
如果我向 PutS3Object 添加 属性“Test1”,它会在对象的元数据中显示为“X-Amz-Meta-Test1”。
但是,如果我在 GenerateFlowFile 中添加 属性“Test2”,它不会显示在元数据中。
我尝试将“Test2”添加为 s3.usermetadata.Test2 但它仍然无效。
有没有办法将所有流文件属性作为元数据传递,而无需在 PutS3Object 中显式添加属性。
PutS3Object 仅插入您在 PutS3Object 处理器本身上设置为动态属性的元数据值。请参阅文档 link 并查看动态属性部分。
PutS3Object 不只是将您设置为元数据的 任何 属性粘贴,否则您最终可能会得到数百个您不感兴趣的元数据条目。唯一的属性是它默认读取为 filename
- 请参阅文档的读取属性部分。
如果您有现有的属性,并且想要将此属性的值推送到元数据中,则必须将动态 属性 添加到 PutS3Object 并引用属性的值。
例如您有一个名为 file_author
的属性,其值为 Steve
,您希望 S3 对象具有元数据字段 author
,其值为 Steve
:
您可以将名称为 author
且值为 ${file_author}
.
的动态 属性 添加到 PutS3Object
编辑:
您 可以 将 PutS3Object 分叉到自定义处理器中以添加您想要的动态功能,但我建议只使用标准 PutS3Object 配置并手动配置您想要的属性。
我有一个简单的流程,包括
GenerateFlowFile ----> PutS3Object ----> 等待
并且生成的流文件正确存储在存储桶中。 现在我想将元数据添加到我的流程文件中。
如果我向 PutS3Object 添加 属性“Test1”,它会在对象的元数据中显示为“X-Amz-Meta-Test1”。
但是,如果我在 GenerateFlowFile 中添加 属性“Test2”,它不会显示在元数据中。 我尝试将“Test2”添加为 s3.usermetadata.Test2 但它仍然无效。
有没有办法将所有流文件属性作为元数据传递,而无需在 PutS3Object 中显式添加属性。
PutS3Object 仅插入您在 PutS3Object 处理器本身上设置为动态属性的元数据值。请参阅文档 link 并查看动态属性部分。
PutS3Object 不只是将您设置为元数据的 任何 属性粘贴,否则您最终可能会得到数百个您不感兴趣的元数据条目。唯一的属性是它默认读取为 filename
- 请参阅文档的读取属性部分。
如果您有现有的属性,并且想要将此属性的值推送到元数据中,则必须将动态 属性 添加到 PutS3Object 并引用属性的值。
例如您有一个名为 file_author
的属性,其值为 Steve
,您希望 S3 对象具有元数据字段 author
,其值为 Steve
:
您可以将名称为 author
且值为 ${file_author}
.
编辑: 您 可以 将 PutS3Object 分叉到自定义处理器中以添加您想要的动态功能,但我建议只使用标准 PutS3Object 配置并手动配置您想要的属性。