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


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



すぐ読み終わるので、是非最後まで読んでみてください!
\ 年収が2倍に?! /
【前提】環境
- ライブラリ「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エンジニア向けのフリーランスエージェントをご紹介します。



エンジニアで実務経験のある方(目安は3年)はフリーランスも視野に入れましょう。
僕自身、フリーランスになって収入が2倍(年収+280万)になりました。
あなたの貴重なスキルを安売りしないようにしましょうね!
初めてのフリーランスなら「レバテックフリーランス」
- 国内最大級のフリーランスエージェント
- 案件数は約40,000件(国内最多)
- 高単価案件が豊富
- マージン率は10〜20%
レバテックフリーランスは国内最大級のフリーランスエージェントです。
高単価案件が豊富で、初めてフリーランスになる方におすすめのエージェントです。



僕も最初はレバテックを利用しましたが、おかげさまで収入が約1.5倍になりました(笑)。
正社員並みの保証なら「Midworks(ミッドワークス)」
- 正社員並みの手厚い保証
- 給与保証あり
- 非公開案件が豊富
- マージン率は一律20%
Midworksは正社員並みの手厚い保証を受けたい方におすすめのエージェントです。
非公開案件が豊富で給与保証も付いているので、安心してフリーランスにチャレンジできますよ!



ちなみに僕はMidworks経由でフルリモート案件に参画できました!
営業担当の方も真摯に対応してくれて非常に助かりました。