October CMSのMedia managerでユーザーによって異なるS3バケットを利用する

October CMSのMedia managerで、ログインユーザーによって2つのS3バケットを使い分けることができるようにしてみました。

環境

  • Laravel:5.5
  • October CMS:1.0

やったこと

システム管理者のグループの設定にある『API用の一意のコード』を取得して判定し、処理を変更するようにしました。

グループ設定

Octoberの設定画面で、今回は以下のようなグループを作成しました。
一意のコードは「another」としました。

グループの設定

configファイルの設定

cms.php

storageの部分は使用するS3の設定を2種類、以下のように設定しました。

filesystems.php

disksの部分を同じく2種類、以下のように設定しました。
ここで設定するキーは、cms.phpで指定したdiskに合わせます。

const.php

const.phpが無い場合は、configフォルダ配下に作成します。
グループで設定したコードを指定します。

Media managerの処理変更

ログインユーザーに紐づいているグループから、設定した一意のコードを取得し判定、使用フォルダやパスの上書きをします。

MediaManager.php

MediaLibrary.php

まとめ

今回は、ユーザーに割り振るグループが1つの場合を想定して作成しています。
2つ以上のグループを割り振るのであれば、グループ取得段階で複数グループを取得して判定する必要があります。

以上がOctober CMSのMedia managerで、ログインユーザーによって2つのS3バケットを使い分けるようにする手順でした。

 

システム開発のご相談はこちらからお気軽にお問合せください。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です