【问题标题】:How to set attachment size limit for an individual database如何为单个数据库设置附件大小限制
【发布时间】:2020-11-08 13:04:11
【问题描述】:

有没有办法限制 CouchDB 中单个数据库的附件大小限制? 我在我的社交网站中有一个数据库 videosdb,我想限制它的附件大小。这样用户就不能上传超过固定限制的视频。

此外,如果有这样的功能,那么在replication 期间它是否可以在多部分请求中工作。

PUT /target/SpaghettiWithMeatballs?new_edits=false HTTP/1.1
Accept: application/json
Content-Length: 1030
Content-Type: multipart/related; boundary="864d690aeb91f25d469dec6851fb57f2"
Host: localhost:5984
User-Agent: CouchDB

【问题讨论】:

    标签: couchdb cloudant


    【解决方案1】:

    至于复制,你可以编写 validate_doc_update 函数,它将每个附件的所有.length props 相加,如果达到限制,则拒绝一个文档。复制的文档总是有每个附件的那个属性。

    但这通常不适用于保存文档,因为保存的 json 可能没有 .length 新附件的属性。

    【讨论】:

      【解决方案2】:

      没有开箱即用的方法可以在每个数据库级别上执行此操作。但是,您可以通过为该数据库编写 update function 来实现您的目标,该数据库会拒绝包含过大附件的文档。

      但请注意,无论如何都不建议使用 CouchDB 来存储大型附件,因为 CouchDB 不是为这种用例设计的,并且对于这种类型的负载并不是特别有效。通常认为最佳做法是将大型附件存储在外部(例如 S3 存储桶或类似文件中),并让您的 CouchDB 文档通过 ID 或 URL 引用它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-06
        • 2019-08-19
        • 2012-12-13
        • 2014-12-22
        • 2013-07-12
        • 1970-01-01
        相关资源
        最近更新 更多