CouchDB 如何为单个数据库设置附件大小限制

6bc51xsx  于 2022-12-09  发布在  CouchDB
关注(0)|答案(2)|浏览(180)

有没有办法限制CouchDB中单个数据库的附件大小限制?我在社交网站中有一个数据库videosdb,我想限制它的附件大小。这样用户就不能上传超过固定限制的视频。
此外,如果有这样的功能,那么它在多部分请求中是否工作,比如在复制过程中。

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
nue99wik

nue99wik1#

对于复制,可以编写validate_doc_update函数,该函数将每个附件的所有.length属性相加,如果达到限制,则拒绝一个文档。复制的文档总是每个附件都有该属性。
然而,这通常不适用于保存文档,因为要保存的json可能没有用于新附件的.length属性。

7lrncoxx

7lrncoxx2#

没有现成的方法可以在每个数据库级别上实现这一点。但是,您可以通过为该数据库编写一个更新函数来实现您的目标,该函数拒绝包含过大附件的文档。
但是请注意,使用CouchDB来存储大附件并不明智,因为CouchDB并不是为这种用例设计的,对于这种类型的加载并不是特别有效。通常认为最好的做法是在外部存储大附件,比如在S3 bucket或类似的存储桶中,并让您的CouchDB文档通过ID或URL引用它们。

相关问题