nextHandler = $nextHandler; } public function __invoke(CommandInterface $command, RequestInterface $request = null) { $next = $this->nextHandler; return $next($command, $request)->then( function (ResultInterface $result) use ($command) { $name = $command->getName(); switch ($name) { case 'PutObject': case 'CopyObject': $result['ObjectURL'] = isset($result['@metadata']['effectiveUri']) ? $result['@metadata']['effectiveUri'] : null; break; case 'CompleteMultipartUpload': $result['ObjectURL'] = $result['Location']; break; } return $result; } ); } }