我假设PutS3Object处理器可以解析对Access Key和Secret Key的引用,因为这两个配置参数支持表达式语言。但我无法让它发挥作用。
通过使用实际值配置Access Key和Secret Key的PutS3Object处理器,我已成功将文件放入S3存储桶。但是,当我尝试在UpdateAttribute处理器中设置这些值,然后使用表达式引用Access Key和Secret Key设置中的属性时,它们似乎没有设置,并且put对象调用失败。
以下是分别将Access Key和Secret Key定义为$ {s3.accessKey}和$ {s3.secretAccessKey}时的错误消息。这两个属性已在PutS3Object处理器之前的UpdateAttribute处理器中设置。
com.amazonaws.services.s3.model.AmazonS3Exception:授权标头格式错误;必须在凭证中提供非空的访问密钥(AKID)。 (服务:Amazon S3;状态代码:400;错误代码:AuthorizationHeaderMalformed;
com.amazonaws.services.s3.model.AmazonS3Exception:授权标头格式错误;必须在凭证中提供非空的访问密钥(AKID)。
答案 0 :(得分:1)
我担心AWS访问密钥属性允许的表达式不包含FlowFile属性。这些表达式旨在与全局配置的“Variable Registry”值一起使用,以便可以将访问密钥作为服务器部署的一部分提供。该功能在“NiFi系统管理员指南”中的Custom Properties下进行了描述。
允许FlowFile属性需要通过NiFi JIRA ticket system提供功能请求。