FilesystemProvider
FilesystemProvider は、パッケージが MastraEditor にファイルシステムを登録するために実装するインターフェースです。Editor は Workspace のハイドレーション時に createFilesystem(config) を呼び出します。その際、provider ID を検索キーとして保存済みの StorageWorkspaceRef のファイルシステム構成から取得します。
組み込みの local Filesystem Provider は自動的に登録されます。外部 Provider(S3 や GCS など)は MastraEditorConfig.filesystems を介して指定します。
使用例使用例への直接リンク
src/mastra/index.ts
import { MastraEditor } from '@mastra/editor'
import { s3FilesystemProvider } from '@mastra/s3'
new MastraEditor({
filesystems: {
[s3FilesystemProvider.id]: s3FilesystemProvider,
},
})
プロパティプロパティへの直接リンク
id:
string
一意の Provider 識別子(例:
"local"、"s3")。この Provider を使用するすべての保存済み Workspace で、StorageFilesystemConfig.provider と一致する必要があります。name:
string
UI に表示する、人が読める名前。
description?:
string
Workspace のファイルシステム選択欄に表示される簡潔な説明。
configSchema?:
Record<string, unknown>
Provider 固有の構成を記述する JSON Schema。UI で構成フォームをレンダリングするために使用されます。
createFilesystem:
(config: TConfig) => WorkspaceFilesystem | Promise<WorkspaceFilesystem>
保存済みの構成から、実行時の
WorkspaceFilesystem インスタンスを作成します。Workspace のハイドレーション時に呼び出されます。Provider の実装Provider の実装への直接リンク
src/providers/my-filesystem.ts
import type { FilesystemProvider, WorkspaceFilesystem } from '@mastra/core/editor'
export const myFilesystemProvider: FilesystemProvider<{ bucket: string; region: string }> = {
id: 'my-fs',
name: 'My Filesystem',
description: 'Object-store-backed filesystem.',
configSchema: {
type: 'object',
required: ['bucket', 'region'],
properties: {
bucket: { type: 'string' },
region: { type: 'string' },
},
},
async createFilesystem(config): Promise<WorkspaceFilesystem> {
return createMyFilesystem({ bucket: config.bucket, region: config.region })
},
}
登録後、管理者はインラインの Workspace 構成または保存済みの StorageWorkspaceRef から、この Provider を参照できます。
関連項目関連項目への直接リンク
- Workspace: 概念と実践的な例。
- StorageWorkspaceRef:
createFilesystemが使用する保存済み構成。 - SandboxProvider: コマンド実行用の関連 Provider。
- MastraEditor クラス: Provider レジストリ。