LoginSignup
7
4

More than 5 years have passed since last update.

PHPでFlysystemのAwsS3AdapterをS3互換サービスで使うときにハマったこと

Posted at

ハマった時の状況

  • Laravelを使ってる
  • 環境はDockerで構築
  • S3互換サービスはDocker上のminio

結論

use_path_style_endpointをtrueにするとサブドメインを使わずにバケットを指定することができる

タイムライン

  • LaravelからS3にアップロードしたい
  • S3だけローカルから外すのはびみょい
  • テスト環境としてminioを選択
  • minioをdocker-composeに追加してみる
  • 一通りの設定をして、接続してみる
  • バケット名がサブドメインになるので、docker-composeでの名前解決に失敗する
  • 取り急ぎhostsに名前書いて名前解決できるようにする
  • 依然としてエラー そのようなバケットはありませんと言われる
  • minioのブラウザ側でバケットを作成
  • それでもエラー・・・ よく見るとエラー対象のバケット名が入っていない
  • ひょっとして、サブドメインでバケット名拾えない?
  • ネットの海を彷徨う
  • force_path_styleという設定をrubyのコードないで見つける
  • ダメ元で設定を追加してみる、ダメっぽい
  • AwsS3Adapterのオプションにuse_path_style_endpointというのを見つける
  • 上記オプションをオンにすることで接続が成功
7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4