본문으로 건너뛰기

파일 시스템 공급자

FilesystemProvider파일 시스템을 등록하기 위해 패키지가 구현하는 인터페이스입니다.MastraEditor. 편집자가 전화함createFilesystem(config)작업 공간 수분 공급 시간에provider저장된 이드에서StorageWorkspaceRef파일 시스템 구성을 조회 키로 사용합니다.

내장 local 파일 시스템 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 하이드레이션 시점에 호출됩니다.

공급자 구현
공급자 구현에 대한 직접 링크

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 })
},
}

등록되면 관리자는 인라인 작업 공간 구성 또는 저장된 공급자를 참조할 수 있습니다.StorageWorkspaceRef.