如何在corda中下载一个jar文件?

How to download a jar file in corda?

我已经在节点中上传了一个 jar 文件。 如何下载附件。 下载附件时,我会得到 jar 文件本身的附件吗? UI里面会有下载按钮,点击附件需要下载。在 UI 中,我将提供文件的哈希值。

你使用了CordaRPCOps.openAttachment()方法。它以附件的散列和 returns 附件 JAR 的 InputStream 作为输入。

这是一个将附件下载为输入流的简单端点:

@GET
@Path("download-attachment")
fun downloadAttachment(@QueryParam("attachment_hash") attachmentHash: String): InputStream {
    val secureHash = SecureHash.parse(attachmentHash)
    return rpcOps.openAttachment(secureHash)
}

然后您需要将输入流写成 JAR 文件。这是一个简单的辅助函数来做到这一点:

fun downloadJar(url: String) {
    val inputStream = URL(url).openStream()

    BufferedReader(InputStreamReader(inputStream)).use {
        File("./downloaded_jar.jar").outputStream().use { outputStream ->
            inputStream.copyTo(outputStream)
        }
    }
}