Differences between revisions 3 and 4
Revision 3 as of 2011-11-23 15:16:41
Size: 1253
Editor: 62
Comment: add ContributorGroup link
Revision 4 as of 2018-04-12 14:32:02
Size: 0
Editor: JoanTouzet
Comment: Obsolete!
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
<<Include(EditTheWiki)>>

= 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.