2016-05-02 1 views
0

Я пытаюсь получить частный файл из AWS S3 Но получить ошибкиПолучение Private File из AWS S3 с PHP

$client = S3Client::factory([ 
     'version' => 'latest', 
     'region' => 'us-west-2', 
     'signature' => 'v4', 
     'credentials' => [ 
      'key' => '****', 
      'secret' => '-****' 
     ] 
    ]); 


    $bucket = 'name'; 
    $file = 'lks/002geH1P1WFXGHWafCwgTw5mwm58X.pdf'; 
    $url = "{$bucket}/{$file}"; 

    $request = $client->get($url); 
    $signedUrl = $client->createPresignedUrl($request, '+10 minutes'); 
    echo $signedUrl; 

Я получаю эту ошибку

Catchable fatal error: Argument 2 passed to Aws\AwsClient::getCommand() must be of the type array, string given, called in /home/ubuntu/vendor/aws/aws-sdk-php/src/AwsClientTrait.php on line 78 and defined in /home/ubuntu/vendor/aws/aws-sdk-php/src/AwsClient.php on line 202

ответ

0

Это работает ... Надеюсь, что это будут помогать другим;)

$cmd = $client->getCommand('GetObject', [ 
      'Bucket' => $bucket, 
      'Key' => $file 
     ]); 

     $request = $client->createPresignedRequest($cmd, '+20 minutes'); 
     $presignedUrl = (string)$request->getUri(); 
     echo $presignedUrl; 
Смежные вопросы