【AWS SDK】PHP(Laravel)でS3から画像を取得する方法!


PHP(Laravel)でAWS S3の画像を取得したいんだけど、実装方法が分からないんだよね。。
こんな疑問にお答えします。
- 本記事の内容
- 本記事の信頼性
本記事を書いている僕はエンジニア歴7年です。
AWSは業務歴2年半なので、かなり有益な情報を発信できるかと思います。
結論、PHP(Laravel)でS3から画像を取得する方法は超簡単です。
本記事を読んでいただければ、AWS SDKを使用してPHP(Laravel)でS3から画像を取得する方法についてしっかりと理解できるので早速見ていきましょう!



すぐ読み終わるので、是非最後まで読んでみてください!
目次
【前提】環境
- ライブラリ「aws-sdk」がインストールされていること
PHP(Laravel)でS3から画像を取得する方法
では早速、PHP(Laravel)でS3から画像を取得する方法を解説します。



今回は、取得した画像をBase64でエンコードします。
<?php
namespace App\Services\Aws;
use Aws\S3\S3Client;
/**
* S3サービス
*/
class S3Service
{
private $s3;
public function __construct()
{
$this->s3= new S3Client([
'version' => '*** version ***',
'region' => '*** region ***',
'credentials' => [
'key' => '*** key ***',
'secret' => '*** secret ***',
],
]);
}
/**
* オブジェクトを取得する
*
* @link https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#getobject
*
* @param string key キー(例:ファイル名)
*/
public function getObject($key)
{
return base64_encode(
$this->s3->getObject([
'Bucket' => '*** Bucket ***',
'Key' => $key,
])['Body']
);
}
}
↑がPHP(Laravel)で画像を取得するソースコードです。



ファイルの実体はgetObjectで返却されるjsonのBodyにあるので注意してください。
getObjectについて
以下がgetObjectの概要になります。
スクロールできます
Bucket | S3のバケット名 ※Bucket名が「sample」の場合、「sample」と指定します。 |
Key | ファイル取得先フォルダ&ファイル名 ※ファイル取得先が「sample/img/」でファイル名が「sample.png」の場合、「img/sample.png」と指定します。 |
まとめ | PHP(Laravel)でS3から画像を取得する方法
今回は、AWS SDKを使用してPHP(Laravel)でS3から画像を取得する方法について解説しました。
以下が本記事のまとめになります。
まとめ
- AWS SDKを使用してPHP(Laravel)でS3から画像を取得するにはgetObjectを使う。
この記事があなたのお役に立てば幸いです。
サイト内には、他にも初心者向けの記事を多く投稿していますので良ければ参考にしてみてください。
最後までお読みいただきありがとうございました!
あわせて読みたい




【AWS SDK】PHP(Laravel)でCloudFrontのキャッシュ削除!
PHP(Laravel)でCloudFrontのキャッシュを削除する方法が分からないんだよね。。 こんな疑問にお答えします。 本記事の内容 PHP(Laravel)でCloudFrontのキャッシュを削除…