An `@action` method should be routed that way regardless of the verb used. `request` gets passed to the action, so you just branch on `request.method` if that's necessary.

You can tell the router which methods to allow using the `methods` keyword argument:

    @action(methods=['POST', 'DELETE'])

That said, I'm not sure you want to `GET` an image by itself. Why not just include the data when you retrieve a collection, and only allow `PUT` to the `@action`?