The below patch adds the ability to invoke a storlet on COPY.
The invocation involves adding X-Run-Storlet to the usual way
of doing copy in Swift: PUT w/ X-Copy-From or COPY w/ Destination
We currently do not support:
1. Copy across accounts,
2. Copy with fresh metdata
The Copy flow resembles that of Put, only instead of taking
the input from the client request, we do an internal request to
get the source object from Swift. Hence the storlet execution
for Copy runs on the proxy.
The patch inclues
1. changes to the engine
2. Thumbnail extraction storlet for testing
3. Functional tests that covers Copy using PUT w/ X-Copy-From
Change-Id: I8771f011747a4eb9e7e347e1bf4dc8892f8b170b