S3で一定時間オブジェクトにアクセス可能なURLの生成
プライベート制限しているバケットのオブジェクトをいつもはGetObjectでデータを取得してbase64エンコードに加工して~
みたいな事をやっていたのですが、どうやら一定時間だけアクセスを許可した署名付きURLが発行できる仕組みがあったので共有します
<?php //Sample Code $s3 = S3Client::factory([ 'credentials' => [ 'key' => $accessKey, 'secret' => $secretKey, ], 'version' => 'latest', 'region' => 'ap-northeast-1', ]); $cmd = $s3->getCommand('GetObject', [ 'Bucket' => 'my-bucket', 'Key' => 'testKey' ]); $request = $s3->createPresignedRequest($cmd, '+20 minutes'); echo $presignedUrl = (string)$request->getUri();
AWS SDK for PHP バージョン 3 での Amazon S3 の署名付き URL - AWS SDK for PHP