Вход Регистрация
Файл: includes/library/aws/Aws/S3/PutObjectUrlMiddleware.php
Строк: 62
<?php
namespace AwsS3;

use 
AwsCommandInterface;
use 
AwsResultInterface;
use 
PsrHttpMessageRequestInterface;

/**
 * Injects ObjectURL into the result of the PutObject operation.
 *
 * @internal
 */
class PutObjectUrlMiddleware
{
    
/** @var callable  */
    
private $nextHandler;

    
/**
     * Create a middleware wrapper function.
     *
     * @return callable
     */
    
public static function wrap()
    {
        return function (callable 
$handler) {
            return new 
self($handler);
        };
    }

    
/**
     * @param callable $nextHandler Next handler to invoke.
     */
    
public function __construct(callable $nextHandler)
    {
        
$this->nextHandler $nextHandler;
    }

    public function 
__invoke(CommandInterface $commandRequestInterface $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'] = $result['@metadata']['effectiveUri'];
                        break;
                    case 
'CompleteMultipartUpload':
                        
$result['ObjectURL'] = $result['Location'];
                        break;
                }
                return 
$result;
            }
        );
    }
}
Онлайн: 0
Реклама