Corda不同步附件的文件名

时间:2019-09-17 12:42:59

标签: corda

我对Corda中的上传附件有疑问。 在我的应用程序中,我想在提供者到接收者的交易中附加一个pdf文件。我使用了带有文件名的称为uploadAttachmentWithMetadata的方法来生成哈希。

以下是我尝试的一些简化代码段: 首先,我得到了哈希值

val pdfHash = proxy.uploadAttachmentWithMetadata(
                    ByteArrayInputStream(pdf),
                    identity,
                    "fileName")

然后我将哈希添加到事务中

txBuilder.addAttachment(pdfHash)

交易完成后,我可以在提供者端使用fileName检索pdf。但是,我不能在接收器端执行相同的操作。我在接收方检查了数据库,但没有找到每个附件的文件名,而提供程序确实有它。所以我的问题是:Corda synchronize是附件节点之间的fileName吗?如果是这样,我该怎么办?

1 个答案:

答案 0 :(得分:0)

我在这里自己回答问题。 在Corda闲置频道和在线搜索中进行了一些讨论之后,MQ似乎仅“共享”与对方的附件,而没有其文件名。 因此,要获取附件:

对于提供方,您可以按名称获取或按哈希获取:

val ids = proxy.queryAttachments(
    AttachmentQueryCriteria.AttachmentsQueryCriteria(filenameCondition = Builder.equal(fileName)),
    null
  )

...

proxy.openAttachment(it)

对于接收方,如果您确实想要获取附件,则将哈希(存储在该州或某处)存储,然后通过哈希获取。

proxy.openAttachment(SecureHash.parse(hash))

这是我在特殊情况下解决问题的方法。如果您有更好的主意,请留下您的评论。我将非常感激。