如何配置 NiFi PutS3Object 处理器以将流属性用于 S3 凭据

How to configure NiFi PutS3Object processor to use flow attributes for S3 credentials

我假设 PutS3Object 处理器可以解析对访问密钥和秘密密钥的引用,因为这两个配置参数支持表达式语言。但是我无法让它工作。

通过使用具有实际值的访问密钥和秘密密钥配置 PutS3Object 处理器,我已成功将文件放入 S3 存储桶中。但是,当我尝试在 UpdateAttribute 处理器中设置这些值,然后使用表达式引用访问密钥和秘密密钥设置中的属性时,它们似乎没有被设置,并且 put object 调用失败。

以下是Access Key和Secret Key分别定义为${s3.accessKey}和${s3.secretAccessKey}时的报错信息。这两个属性已在 PutS3Object 处理器之前的 UpdateAttribute 处理器中设置。

com.amazonaws.services.s3.model.AmazonS3Exception:授权 header 格式错误;凭据中必须提供 non-empty 访问密钥 (AKID)。 (服务:Amazon S3;状态代码:400;错误代码:AuthorizationHeaderMalformed;

com.amazonaws.services.s3.model.AmazonS3Exception:授权 header 格式错误; non-empty 必须在凭据中提供访问密钥 (AKID)。

恐怕 AWS 访问密钥属性允许的表达式不包括 FlowFile 属性。这些表达式旨在与全局配置的 "Variable Registry" 值一起使用,以便访问密钥可以作为服务器部署的一部分提供。该功能在 NiFi 系统管理员指南的 Custom Properties 下进行了描述。

允许使用 FlowFile 属性需要通过 NiFi JIRA ticket system.

提出功能请求