我们使用 CouchDB 2.0 来存储文件(.txt、.doc、.xls、.pdf、.mp3、.mp4、.zip)。文件从我们的 Web 应用程序上传并存储在 CouchDB 上。正在上传的文件的最大上传大小为 500 MB。
我们希望定期将 CouchDB 从生产服务器备份到安装了 CouchDB 的备份服务器计算机。我们使用 CouchDB 支持的复制技术来备份数据。
以下curl命令适用于复制数据库:
curl -H "Content-Type: application/json" -X POST "http://localhost:5984/_replicate" -d {"source":"http://user:password@targetIP:5984/dbname","target":"sampledb","continuous":true}
以上命令非常适合复制包含所有带有文本文件附件的文档的数据库。但它不适用于包含视频或音频或 pdf 文件作为附件的文档的数据库。
以下是有关此问题的详细信息 - 如果在 CouchDB 上上传大小高达 500MB 的文本文件,则该文件将以远小于 500MB 的压缩大小存储。如果 CouchDB 仅存储文本文件,复制效果很好,没有任何问题。但是,如果在 CouchDB 上上传任何媒体文件、pdf 或 zip 文件,它会被存储但不会进行任何压缩,并且包含这些文件的 CouchDB 无法成功复制。当上传超过 5mb 的媒体文件时,通常会发生这种情况。
作为解决方法,我们在 default.ini 文件的 compressible_types 选项中添加了 video/*。但仍然使用具有媒体附件的文档复制数据库不起作用。
有人知道在这种情况下如何复制 CouchDB 吗?
任何帮助都非常值得赞赏。
谢谢你,
贾昆·赫加尔
最佳答案
通过在 couchDB 的 local.ini 设置文件中添加以下选项可以解决此问题。该文件位于 CouchDB\etc 位置。
[ Fabric ] request_timeout = 无穷大
关于couchdb - 复制不适用于包含音频/视频文件的 CouchDB 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44333654/