FilesystemProvider
FilesystemProvider est l’interface qu’un package implémente pour enregistrer un système de fichiers auprès de MastraEditor. L’Editor appelle createFilesystem(config) lors de l’hydratation du Workspace et utilise comme clé de recherche l’ID provider de la configuration du système de fichiers enregistrée dans StorageWorkspaceRef.
Le fournisseur de système de fichiers local intégré est enregistré automatiquement. Les fournisseurs externes, tels que S3 ou GCS, sont transmis au moyen de MastraEditorConfig.filesystems.
Exemple d’utilisationLien direct vers Exemple d’utilisation
src/mastra/index.ts
import { MastraEditor } from '@mastra/editor'
import { s3FilesystemProvider } from '@mastra/s3'
new MastraEditor({
filesystems: {
[s3FilesystemProvider.id]: s3FilesystemProvider,
},
})
PropriétésLien direct vers Propriétés
id:
string
Identifiant unique du fournisseur (par exemple,
"local" ou "s3"). Il doit correspondre à StorageFilesystemConfig.provider dans chaque Workspace enregistré qui utilise ce fournisseur.name:
string
Nom lisible affiché dans l’interface utilisateur.
description?:
string
Courte description affichée dans le sélecteur de système de fichiers du Workspace.
configSchema?:
Record<string, unknown>
JSON Schema décrivant la configuration propre au fournisseur. Utilisé par l’interface utilisateur pour afficher les formulaires de configuration.
createFilesystem:
(config: TConfig) => WorkspaceFilesystem | Promise<WorkspaceFilesystem>
Crée une instance
WorkspaceFilesystem à l’exécution à partir de la configuration enregistrée. Appelé lors de l’hydratation du Workspace.Implémenter un fournisseurLien direct vers Implémenter un fournisseur
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 })
},
}
Une fois le fournisseur enregistré, les administrateurs peuvent le référencer depuis une configuration de Workspace intégrée ou un objet StorageWorkspaceRef enregistré.
Voir aussiLien direct vers Voir aussi
- Workspace : concept et exemples détaillés.
- StorageWorkspaceRef : configuration enregistrée utilisée par
createFilesystem. - SandboxProvider : fournisseur analogue pour l’exécution de commandes.
- Classe MastraEditor : registre des fournisseurs.