18

このリンク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

どうしたの?

4

2 に答える 2