BETA

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

投稿日:2018-10-17
最終更新:2018-10-24
※この記事は外部サイト(https://qiita.com/mikkame/items/acbf03e8bb...)からのクロス投稿です

ハマった時の状況

  • 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というのを見つける
  • 上記オプションをオンにすることで接続が成功
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@mikkameの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!