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というのを見つける
  • 上記オプションをオンにすることで接続が成功
記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@mikkameの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする