Differences between revisions 2 and 3
Revision 2 as of 2010-09-14 07:50:13
Size: 1225
Editor: 182
Comment: fixed up a mistruth
Revision 3 as of 2011-11-23 15:16:41
Size: 1253
Editor: 62
Comment: add ContributorGroup link
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:

How to Return a document's attachment from inside a vhost and/or redirect

When you're inside of a vhost with rewrites, people can't see the database documents, and also can't see their attachents.

This was really annoying for me as all my product documents have images.

I first tried adding the ?with_attachments (or whatever it is) in a show function, but I thought, whoa! I'm gonna load 5 images into memory (in base64 encoding no less) to just return one .. that's a bit sucky.

So anyway, the docs say that rewrites are relative to /dbname/_design/designname .. I expected ../ in a rewrite to return the '/db/' root, but it actually needs '../../':

    "from":   "/products/dvrs/:doc/:attachment",
    "to":     "../../:doc/:attachment",
    "method": "GET" 

I'm not sure if there are any security issues with serving attachments like this. Technically someone might be able to put anything in :doc and anything in :attachment and they'd be getting it basically from the database root. So I'm going to be putting in another rewrite rule/filter on my nginx to stop them putting '_' in the names.

It'd be neat to have a rewrite customisable rewrite function or filter option.