当前位置: 首页 > 知识库问答 >
问题:

使用ZipEntry的重复附件异常Corda

严知
2023-03-14
private fun uploader(inputStream: InputStream, fileName: String, uploader: String): AttachmentId {

        val zipName = "$fileName.zip"

        FileOutputStream(zipName).use { fileOutputStream ->
            ZipOutputStream(fileOutputStream).use { zipOutputStream ->
                val zipEntry = ZipEntry(fileName)
                zipOutputStream.putNextEntry(zipEntry)
                inputStream.copyTo(zipOutputStream, 1024)
            }
        }
        return FileInputStream(zipName).use { fileInputStream ->
            val hash = proxy.uploadAttachmentWithMetadata(
                    jar = fileInputStream,
                    uploader = uploader,
                    filename = fileName
            )
            Files.deleteIfExists(Paths.get(zipName))
            hash
        }

    }

这是我能够产生问题的代码。

共有1个答案

石喜
2023-03-14

我不认为这是你可以避免的例外。如果散列是相同的,那么Corda很可能会抛出它。

我很好奇你需要多次上传同一个附件的用例是什么,我想你在设计中避免这个问题要比为Corda创建变通方法容易得多。

我想你也可以稍微修改一下文件,以确保它们在上传时略有不同。

 类似资料:
  • 我有代码: 这是我的项目结构:https://imgur.com/a/5ipF1 这是我的错误消息: 这很奇怪,因为在我将Gradle添加到项目之前它就起作用了。添加Gradle后,我不得不将“src”备注为“源根”。 此结构是智能为 JavaFX 项目生成的基本结构。 有什么想法吗?

  • 在我的应用程序中,我通过extras向我的发送数据。 在我的特定情况下,我下载一个文件,将其内容转换为,并将其作为额外文件发送到我的。大小约为500kB。 我得到了一个。 在这种情况下,哪种方法是绕过此错误的最佳方法?

  • 我正在使用JSF1.2和PrimeFaces3.5开发一个示例应用程序。我在桌面上有RAD并创建了一个新的动态web项目。我已经用primeface编辑器标记编写了xhtml文件。但是,当我管理这个项目的时候..它为FacesServlet抛出“java.lang.ClassNotFoundException”,尽管该servlet存在于类路径中。 我已经在我的类路径中添加了下面的jar.. my

  • HTTP状态500-请求处理失败;嵌套异常是org.springframework.dao.dataIntegrityViolationException:键“groups_groupid”的重复条目“2”;SQL[N/A];约束[null];嵌套异常是org.hibernate.exception.constraintViolationException:键“groups_groupid”的重复

  • 我一直得到当尝试添加一个新项目到列表中,例如Items.add(p);你能帮助我理解为什么我得到这个例外吗?

  • 我正在使用Spring Boot构建一个简单的CRUD操作,MySQL和Hibernate在这个操作中需要帮助。在Google上搜索了很多,StackOverflow没有找到合适的解决方案。 问题:服务器时区值“unknown”无法识别或表示多个时区。如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过配置属性)以使用更具体的时区值。 ...........................