このリンクhttp://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.htmlによると、 getObjectUrl に寿命を追加するだけで署名付きリンクを簡単に作成できます
$signedUrl = $client->getObjectUrl($bucket, 'data.txt', '+10 minutes');
// > https://my-bucket.s3.amazonaws.com/data.txt?AWSAccessKeyId=[...]&Expires=[...]&Signature=[...]
しかし、私は awsaccesskeyid と expires パラメータなしでプレーンな URL を取得します。
これが私のコードです:
$bucket = 'imagenesfc';
$keyname = 'NASimagenes/codigoBarraBoleto/1001000098.png';
$filepath = 'NASimagenes/codigoBarraBoleto';
// Instantiate the client.
$s3 = S3Client::factory(array(
'version' => 'latest',
'region' => 'us-west-1'
));
$signedUrl = $s3->getObjectUrl($bucket, $keyname,'+10 minutes');
// > https://my-bucket.s3.amazonaws.com/data.txt?AWSAccessKeyId=[...]&Expires=[...]&Signature=[...]
echo $signedUrl."<br>";
編集: 環境変数として AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY があります
私のエコーは次のようになります。
https://s3-us-west-1.amazonaws.com/imagenesfc/NASimagenes/codigoBarraBoleto/1001000098.png
どうしたの?