nextHandler = $nextHandler; } public function __invoke(\UglyRobot\Infinite_Uploads\Aws\CommandInterface $command, \UglyRobot\Infinite_Uploads\Psr\Http\Message\RequestInterface $request = null) { $next = $this->nextHandler; return $next($command, $request)->then(function (\UglyRobot\Infinite_Uploads\Aws\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; }); } }