1

我必须从 Java Web 应用程序将非常大的文件(> 10 GB)上传到 Alfresco 存储库。由于文件大小,我想使用appendContentStreamApache Chemistry 以 Java 提供的操作 (CMIS 1.1) 使用分块上传(例如 1 GB)。

我的问题是:如何从失败的块上传中恢复?AFAIU,使用的一个要点appendContentStream是避免在失败的情况下重新上传整个文件,但是我没有找到任何机制说:“好的,最后一个块出错了,让我们重新上传吧”。如果块上传失败,如何避免损坏的文件?

查看 Alfresco 源代码 [1] 和 [2],我看到在 4.2fa 中,新的次要版本是在每个块附加上创建的,而在 5 中,这不再是真的了。对我来说,这两种解决方案都是次优的(在 4.2f 中存在“版本污染”,在 5 中我看不到恢复路径)。

关于最佳模式的任何建议?

[1](主)https://github.com/Alfresco/community-edition/blob/24ae86da33534a90fc10a693f48bc45556fd9d9d/projects/repository/source/java/org/alfresco/opencmis/CMISConnector.java#L1816

[2] (4.2f) https://raw.githubusercontent.com/Alfresco/community-edition/V4.2f/root/projects/repository/source/java/org/alfresco/opencmis/CMISConnector.java

4

0 回答 0