メインコンテンツへ移動

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 を参照できます。