如何在Corda中获取附件元数据

时间:2018-07-29 19:22:09

标签: corda

使用以下API将文档存储在Corda中:

proxy.uploadAttachmentWithMetadata(pathname, uploader, filename)

以下API用于获取AttachmentId的列表

queryAttachments(Query: AttachmentQueryCriteria, sorting: AttachmentSort?) List<Atta
chmentId>

有什么方法可以知道元数据,例如上传器和文件名?上面的调用仅返回ID的列表,但没有元数据。

1 个答案:

答案 0 :(得分:0)

您可以使用任何名称创建一个zip文件并上传。 并且,在下载时,您可以提取zip文件并获取zip条目文件名或任何元数据。

例如:

SecureHash hash = SecureHash.parse(org.apache.commons.lang3.StringUtils.substringAfter(reqPath,"attachments/"));
    InputStream attachment =  proxy.openAttachment(hash);//uploaded hash 
    String subPath = StringUtils.substringAfter(reqPath,"/").toLowerCase();
                resp.setContentType(MediaType.APPLICATION_OCTET_STREAM.toString());
     ZipInputStream zin = new ZipInputStream(attachment);
                    ZipEntry zipEntry  = zin.getNextEntry();
                    logger.info("file name:" +  zipEntry.getName());
                    resp.addHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+ zipEntry.getName());
     byte[] bytes = IOUtils.toByteArray(zin);
    resp.getOutputStream().write(bytes);

基本上,corda仅为您提供以哈希作为文件名的zip文件。在Api端,您需要执行上述步骤来获取文件名。 `