Nextcloud

SMB外部ストレージ設定の “大文字と小文字を区別するファイルシステム” オプションの動作について

files_external(外部ストレージ連携)アプリで、SMB/CIFSストレージを連携する際、”大文字と小文字を区別するファイルシステム(Case sensitive file system)” というオプションが設定できます。今回はこのオプションの動作について解説します。

※英語環境では、”Case sensitive file system” と表記されます

オプションの概要

“大文字と小文字を区別するファイルシステム(Case sensitive file system)” オプションは Nextcloud 28 で追加されました。この設定は、Nextcloud が SMB共有とやりとりする際のファイル操作やパスの検索方法に影響します。

このオプションは、次の例のように接続するSMBサーバのファイルシステムに合わせて設定をします。

  • SMBサーバが大文字小文字を区別するファイルシステム(Linuxのext4のような)の場合はオプションを有効にします
  • SMBサーバが大文字小文字を区別しないファイルシステム(NTFSやFAT32のような)の場合はオプションを無効にします

Nextcloud の内部的な動作について

“大文字と小文字を区別するファイルシステム(Case sensitive file system)” が 有効もしくは無効の場合、Nextcloud はそれぞれ次のような動作をします。

  1. “Case sensitive file system” オプションが有効な場合(デフォルト有効)

    – ファイルの存在確認は、大文字小文字が区別された正確な一致で行われます
    – ファイル操作は、提供された正確なパスを使用します
  1. “Case sensitive file system” オプションが無効な場合(未チェック)

    – ファイルの存在確認は、ファイル名の大文字小文字を区別せずに比較します
    – ディレクトリの内容をスキャンして、大文字小文字を区別せずにファイル名を照合します
    – これは、ファイル存在確認のような操作や検索に影響を与えます

重要なポイントとして、この設定は、Nextcloud がファイルの検索や存在確認をどのように処理するかにのみ影響し、実際のSMBサーバ側の動作に影響することはありません。

また、オプションが正しく設定されていない場合には、以下のような問題が発生する可能性があります。

  • ファイルの存在確認が不正確になり、ファイルキャッシュの不整合が発生します
  • 大文字小文字を区別せずに検索することによるディレクトリスキャン性能の低下が発生します

以上、現場からお届けいたしました。