まえがき
いや、我ながらやり方分かっちゃうと、結構低レベルな話...となったのですが、同じことで困っている人のために書いておきます。
(ググっても全然出てこなかったのは、簡単すぎるせいか...)
もともとAmazon S3はDBのバックアップで使用していたのですが、動画のストリーミング再生もしたいということで、動画をAmazon S3に置くことになりました。
というわけで、いつもは一つしか使っていなかったバケットですが、今回は2つ使うことになって、え!?でも違うバケットってどうやって設定するん!?ということになりました。
とりあえずデフォルトのバケット設定して
.envにAWSのリージョンとか、キーとか、バケット書けばOK!!
AWS_ACCESS_KEY_ID=自分のやつ
AWS_SECRET_ACCESS_KEY=見て
AWS_DEFAULT_REGION=書いて
AWS_BUCKET=バケット名
もう一つのバケットは...??
うーん、.envにはバケットひとつしか書けないじゃん...あたいどうすんのよ。。
config/filesystems.php
に書けるよ!!
これを追加したらいいんだよ↓
/** こちら、もとからある方です */
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
],
/** こちら、追加した方です */
's3_movie' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => 'ここにもう一つのバケット名入れてくれ', //★★★ この行見て★★★
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
],
実際にS3に接続する処理
//disk名を、新しく追加した方の名前にするよ
$disk = \Storage::disk('s3_movie');
まとめ
この方法を応用すれば、違うS3に接続するのも簡単だ!!
bucket名が環境によって違うのであれば、直書きではなく、.envに書いて取得してくれ!
やり方が分かってしまえば、大したことない話なんですがね...こういう記事も需要あるんでは??