couchdb - 复制不适用于包含音频/视频文件的 CouchDB 数据库

标签 couchdb database-replication

我们使用 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/

相关文章:

java - 如何在事务期间将只读 hibernate session 转换为写入(主/从数据库)

java - 使用 Java 的 PostgreSql 复制配置

couchdb - 哪个更好 - 在 couchdb 文档中自动生成 id 或手动 id 分配?

android - 在 ionic 应用程序中创建远程 couchdb 数据库

CouchDB:磁盘大小与数据大小

mongodb - NoSQL 最佳实践

javascript - 用于检查 CouchDB nodejs nano 中是否存在文档的自定义函数

android - 在不使用 Web 服务的情况下在 Android SQL-Lite 和 SQL Server 之间交换数据

postgresql - 如何检查是否正在复制 Postgres 10 集群?

MySQL复制主从