Fessのストレージ画面でS3/GCS対応

Fessでは、以前からMinIOクライアントライブラリを使ったストレージ機能をサポートしてきました。しかし、MinIOライブラリがメンテナンスモードになったため、Fess 15.4ではFessの内部ライブラリとしての利用をやめ、AWS SDK for S3とGoogle Cloud Storageライブラリに置き換えました。

これにより、管理画面のストレージ画面でもAmazon S3やGoogle Cloud Storage (GCS) を直接指定して利用できるようになりました。

変更内容

今回の変更では、以下の対応を行いました。

  • MinIOクライアントライブラリを削除し、AWS SDK for S3とGoogle Cloud Storageライブラリを導入
  • StorageClientインターフェースによるストレージ抽象化レイヤーの導入
  • S3StorageClientGcsStorageClientの実装追加
  • StorageClientFactoryによるストレージタイプの自動検出
  • 管理画面のストレージ設定でS3とGCSを選択可能に

ストレージタイプの自動検出

StorageClientFactoryは、設定されたエンドポイントURLからストレージタイプを自動的に判別します。

  • storage.googleapis.comを含む場合はGCSクライアントを使用
  • amazonaws.comを含む場合はS3クライアントを使用
  • その他の場合(MinIOなど)はS3互換クライアントを使用

また、storage.type設定で明示的にストレージタイプ(s3gcsauto)を指定することもできます。

新しい設定項目

管理画面の一般設定に、以下のストレージ設定が追加されました。

設定項目説明
Storage Typeストレージタイプ(s3, gcs, auto)
Storage RegionS3のリージョン(例:us-east-1)
Storage Project IDGCSのプロジェクトID
Storage Credentials PathGCSの認証情報JSONファイルパス

対応プロトコル

クローラーが対応するファイルプロトコルにもs3gcsが追加され、storage://に加えて、s3://gcs://でのクロールも可能になります。

詳細

詳細はPR #2983を参照してください。

投稿記事作成の効率化

最近は、Claude Codeを使うことで、今まで対応できなかったこともできるようになったりと、生産性の高まりを感じに今日この頃です。この前のClaude Code on Webも$990くらい使い、Fess周辺の開発がいろいろと前進したと思うのですが、いろいろとあって、その情報発信が追いついていない…。

そんな感じで、どうするかを考え始めて、開発関連の情報発信も効率化すれば良いと思い始める。たとえば、PRの情報とかを渡したら、まとめ記事のドラフトができる、くらいまでやってくれれば、コピペと簡単なチェックで公開できるのかなと。

そんなわけで、その仕組み自体もClaude Codeで作ったので、今後は効率が良い情報発信ができるようになるかもしれない。

FessでS3/GCSの対応

次にリリースされるFess 15.4で、Amazon S3とGoogle Cloud Storage(GCS)のファイルクロールに対応する予定です。

これまでFessでは、file、smb、ftp、storageなどのプロトコルでファイルをクロールできましたが、クラウドストレージに対応してほしいという要望があったので、S3とGCSのサポートを追加しました。

設定としては、crawler.file.protocolss3gcsが追加されるので、ファイルシステムクロールの設定でs3://bucket/pathgcs://bucket/pathといったURLを指定することで、クラウドストレージ上のファイルをクロールできるようになります。

クロール処理の内部では、これらのURLをファイルパスとして認識して、適切に処理するようにProtocolHelperに対応を追加しています。詳細はPR #2982を参照してください。

Fess 15.4がリリースされたら、ぜひ試してみてください。