ファイルシステム

ファイルシステムエントリは、ディレクトリをバックエンドとするストレージ、または読み取り専用の埋め込みストレージをランタイムモジュールに公開します。このページは設定リファレンスです。YAML ブロックは完全なプロジェクトではなく、個別のエントリの断片です。

エントリ種別

種別 説明
fs.directory ディレクトリベースのファイルシステム
fs.embed 読み取り専用の埋め込みファイルシステム

ディレクトリファイルシステム

- name: uploads
  kind: fs.directory
  directory: "/var/data/uploads"
  auto_init: true
  mode: "0755"
フィールド 型 デフォルト 説明
directory string 必須 ルートパス
auto_init bool false 存在しない場合はディレクトリを作成
mode string 0755 Unixパーミッションモード(8進数)
base string - 相対パスの基準: project(プロセスの作業ディレクトリ)またはmodule(所有モジュールのロードルート)

絶対パスはbaseの指定にかかわらず、そのまま使用されます。

相対パスの場合、base: projectはプロセスの作業ディレクトリからの相対パスとして扱います。base: moduleとbase未設定はどちらも、エントリのレジストリ上の所有者を辿って特定した所有モジュールのロードルートを基準に解決します。エントリに所有モジュールがない場合、またはそのモジュールに解決可能なリソースルートがない場合、パスはプロセスの作業ディレクトリからの相対パスのままになります。

その他の値はinvalid directory baseとして拒否されます。

モードはすべてのファイル操作を制限します。すべての読み取りビットが設定されており実行ビットが1つも設定されていない場合、実行ビットは自動的に追加されます。

パスは正規化および検証されます。設定されたルートディレクトリ外のファイルにはアクセスできません。

埋め込みファイルシステム

- name: static
  kind: fs.embed

埋め込みファイルシステムは、エントリ ID を使用してパックリソースから読み込まれます。読み取り専用です。

埋め込みファイルシステムは内部で使用されるため、通常は手動で設定する必要はありません。

操作

どちらのファイルシステム種別も次の操作を実装します。

操作 ディレクトリ 埋め込み
Open/Read はい はい
Stat はい はい
Lstat はい はい
ReadDir はい はい
OpenFile (write) はい いいえ
Remove はい いいえ
Mkdir はい いいえ
Rename はい いいえ

埋め込みファイルシステムへの書き込み操作はエラーを返します。

Lua API

ファイル操作については、ファイルシステムモジュールを参照してください。

関連項目