Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Corda 科达:我能';t使用web UI中的二进制流将pdf(文件)附加到节点_Corda - Fatal编程技术网

Corda 科达:我能';t使用web UI中的二进制流将pdf(文件)附加到节点

Corda 科达:我能';t使用web UI中的二进制流将pdf(文件)附加到节点,corda,Corda,我们正在尝试使用二进制流将pdf作为附件上传到corda事务。事实上,我们从这里得到了灵感()请查看fun sizedInputStreamAndHash()。还有什么其他建议我们可以试试吗 以下是我们如何在API中编写二进制流的片段: logger.debug(numOfClearBytes) val baos = ByteArrayOutputStream() ZipOutputStream(baos).use({ zos -> val arra

我们正在尝试使用二进制流将pdf作为附件上传到corda事务。事实上,我们从这里得到了灵感()请查看fun sizedInputStreamAndHash()。还有什么其他建议我们可以试试吗

以下是我们如何在API中编写二进制流的片段:

    logger.debug(numOfClearBytes)
    val baos = ByteArrayOutputStream()
    ZipOutputStream(baos).use({ zos ->
        val arraySize = numOfClearBytes.toByteArray().size
        val bytes = numOfClearBytes.toByteArray()
        val n = (numOfClearBytes.toByteArray().size - 1) / arraySize + 1 // same as Math.ceil(numOfExpectedBytes/arraySize).
        zos.setLevel(Deflater.BEST_COMPRESSION)
        zos.putNextEntry(ZipEntry("z"))
        for (i in 0 until n) {
            zos.write(bytes, 0, arraySize)
        }
        zos.closeEntry()
    })
    val bytes = baos.toByteArray()
    val inputAndHash: InputStreamAndHash = InputStreamAndHash(ByteArrayInputStream(bytes), bytes.sha256())

    val attachmentId = services.uploadAttachment(inputAndHash.inputStream)

    val flowHandle = services.startTrackedFlow(::Payer, exchangeAmount, otherParty, attachmentId)

    val attachmentId = services.uploadAttachment(inputAndHash.inputStream)

    val flowHandle = services.startTrackedFlow(::Payer, exchangeAmount, otherParty, attachmentId)

要使用内置Web服务器通过HTTP将附件上载到节点,必须点击
/upload/attachment
端点。默认情况下,该端点由节点提供-您不必自己添加它。看

如果将附件发送到此终结点,它将上载到节点,并且终结点将返回节点上文件的哈希值

然后,您可以使用
CordaRPCOps.openAttachment
ServiceHub.attachments.openAttachment
将附件作为输入流使用其哈希进行检索。然后,您可以根据需要(在web端点或流中)对其进行处理


要查看使用HTTP端点上载附件的示例CorDapp,请参阅此处的黑名单示例:(自述文件中的详细信息)。

要使用内置Web服务器通过HTTP将附件上载到节点,必须点击
/upload/attachment
端点。默认情况下,该端点由节点提供-您不必自己添加它。看

如果将附件发送到此终结点,它将上载到节点,并且终结点将返回节点上文件的哈希值

然后,您可以使用
CordaRPCOps.openAttachment
ServiceHub.attachments.openAttachment
将附件作为输入流使用其哈希进行检索。然后,您可以根据需要(在web端点或流中)对其进行处理


要查看使用HTTP端点上载附件的示例CorDapp,请参阅此处的黑名单示例:(自述文件中的详细信息)。

以及出现了什么问题?有错误信息吗?你好,乔尔!这并不是关于Corda的问题,但是我想应该使用这个库来让WebAPI工作。我们在项目中使用了“import org.glassfish.jersey.media”,但由于corda在启动Web服务器时未注册MultiPartFeature.class,因此出现了一个错误。如果没有这些,我们就不能在MediaType.MULTIPART\u FORM\u data的api中使用@FormDataParam,出了什么问题?有错误信息吗?你好,乔尔!这并不是关于Corda的问题,但是我想应该使用这个库来让WebAPI工作。我们在项目中使用了“import org.glassfish.jersey.media”,但由于corda在启动Web服务器时未注册MultiPartFeature.class,因此出现了一个错误。没有它,我们就不能在MediaType.MULTIPART\u FORM\u DATAHowdy Joel的api中使用@FormDataParam!我正在看代码。此/上载/附件端点在哪里?是否有脚本正在运行,因为它清楚地响应jar/zip文件的散列。我们需要通过Web服务器生成该文件,以便在将其作为附件放在同一个Tx中之前可以解析信息。目前,我们有一个文本文件和一个实际合同的pdf文件。我们可以解析和压缩文本,然后在api中放入tx。然而,我们在让Pdf与api中的文本压缩在一起时遇到了一些困难。无论如何,我会看看我们还有什么可以尝试的。更新了我的答案。你好,乔!我正在看代码。此/上载/附件端点在哪里?是否有脚本正在运行,因为它清楚地响应jar/zip文件的散列。我们需要通过Web服务器生成该文件,以便在将其作为附件放在同一个Tx中之前可以解析信息。目前,我们有一个文本文件和一个实际合同的pdf文件。我们可以解析和压缩文本,然后在api中放入tx。然而,我们在让Pdf与api中的文本压缩在一起时遇到了一些困难。无论如何,我会看看我们还有什么可以尝试的。更新了我的答案。