環境
- laravel5.1
- SDKのversionは3系
前提
通常は下記のドキュメントにもある通り、ACCESS_KEYなどは1つしか設定できませんが、
複数サービス使用する場合は設定値も複数必要になることがあります。
下記はS3とSNSを使用する場合の設定方法の例です。
手順
1. 下記コマンドでawsのconfigファイルを生成する
php artisan vendor:publish
2. config/aws.phpが生成されているので設定する
ここに各サービスごとに設定値を書くと、デフォルトの値がオーバーライドされるらしい。
config/aws.php
<?php
use Aws\Laravel\AwsServiceProvider;
return [
/*
|--------------------------------------------------------------------------
| AWS SDK Configuration
|--------------------------------------------------------------------------
|
| The configuration options set in this file will be passed directly to the
| `Aws\Sdk` object, from which all client objects are created. The minimum
| required options are declared here, but the full set of possible options
| are documented at:
| http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/configuration.html
|
*/
'S3' => [
'region' => env('AWS_S3_REGION', 'us-east-1'),
'credentials' => [
'key' => env('AWS_S3_ACCESSKEY'),
'secret' => env('AWS_S3_SECRETKEY')
]
],
'Sns' => [
'region' => env('AWS_SNS_REGION', 'us-east-1'),
'credentials' => [
'key' => env('AWS_SNS_ACCESSKEY'),
'secret' => env('AWS_SNS_SECRETKEY')
]
]
];
ちなみに.envの中身は下記の通り
.env
...
AWS_S3_REGION=us-west-2
AWS_S3_ACCESSKEY=xxxxxxx
AWS_S3_SECRETKEY=xxxxxxx
AWS_S3_BUCKET=xxxxxxx
AWS_SNS_REGION=ap-northeast-1
AWS_SNS_ACCESSKEY=xxxxxxx
AWS_SNS_SECRETKEY=xxxxxxx
AWS_SNS_IOS=xxxxxxx
AWS_SNS_ANDROID=xxxxxxx
AWS_SNS_TOPIC_ARN=xxxxxxx
...
その他処理
S3へのアップロードなどは他と特に変わりませんので、リンクのドキュメントを参考に。