aws-sdk-php-laravelとは
AWS SDK for PHPをlaravelのために使いやすくしたもの
(そもそもAWS SDKとはawsのサービスを使いやすくするソフトウェア開発キットのこと)
インストール
aws-sdk-php-laravelをインストールする
composer.jsonに書く
composerを通じてインストールします
{
"require": {
"aws/aws-sdk-php-laravel": "~3.0"
}
}
composer update
conposer updateを実行する
$ composer update
config/app.php
config/app.phpにAWS Service Providerを追加します
'providers'
と下の方にある'aliases'
に下のように追加してください
'providers' => array(
// ...
Aws\Laravel\AwsServiceProvider::class,
)
'aliases' => array(
// ...
'AWS' => Aws\Laravel\AwsFacade::class,
)
設定
環境変数
デフォルトでは、これらの環境変数が使われます。
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_REGION (default = us-east-1)
環境変数の設定方法はこれをみてもらったら早いと思います。
https://qiita.com/tiwu_official/items/ecb115a92ebfebf6a92f
AWS_DEFAULT_REGION名前はAWS_REGIONに変更します。
aws.config
.envで設定した環境変数はこんな感じで使われてるよーって
return [
'credentials' => [
'key' => env('AWS_ACCESS_KEY_ID', ''),
'secret' => env('AWS_SECRET_ACCESS_KEY', ''),
],
'region' => env('AWS_REGION', 'us-east-1'),
'version' => 'latest',
// You can override settings for specific services
'Ses' => [
'region' => 'us-east-1',
],
];
使い方
画像をアップロード
$s3 = App::make('aws')->createClient('s3');
$s3->putObject(array(
'Bucket' => 'YOUR_BUCKET', #s3で登録したbucketの名前
'Key' => 'YOUR_OBJECT_KEY', #登録したいファイルの名前
'SourceFile' => '/the/path/to/the/file/you/are/uploading.ext', #登録したいファイル
));
これで画像をアップロードすることができる。
画像を表示
$s3 = App::make('aws')->createClient('s3');
$key = 'YOUR_OBJECT_KEY'; #取得したいファイルの名前
$bucket = env('AWS_BUCKET'); #bucketの名前
$image = $s3->getObjectUrl($bucket, $key); #getObjectUrlでurlを取得
これでviewに表示できます。
参考
公式のgithub(ほぼこれの日本語訳です)
https://github.com/aws/aws-sdk-php-laravel/blob/master/README.md
超簡単!LaravelでS3を利用する手順
https://qiita.com/tiwu_official/items/ecb115a92ebfebf6a92f