2016-05-02 15 views
0

Erste I Private-Datei von AWS S3 zu bekommen versuche aber immer FehlerPrivate File von AWS S3 mit 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; 

Ich erhalte diesen Fehler

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

Antwort

0

Dies funktioniert ... es Hoffnung wird anderen helfen;)

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

     $request = $client->createPresignedRequest($cmd, '+20 minutes'); 
     $presignedUrl = (string)$request->getUri(); 
     echo $presignedUrl;