Aller au contenu principal

BlobStoreProvider

BlobStoreProvider est l’interface qu’un package implémente pour enregistrer un stockage de blobs auprès de MastraEditor. Les stockages de blobs contiennent des blobs de Skills adressables par leur contenu ainsi que d’autres artefacts volumineux produits par Editor.

Le Provider storage intégré utilise le domaine blobs du backend de stockage configuré. Les Providers externes, par exemple S3, sont fournis par l’intermédiaire de MastraEditorConfig.blobStores.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

src/mastra/index.ts
import { MastraEditor } from '@mastra/editor'
import { s3BlobStoreProvider } from '@mastra/s3'

new MastraEditor({
blobStores: {
[s3BlobStoreProvider.id]: s3BlobStoreProvider,
},
})

Propriétés
Lien direct vers Propriétés

id:

string
Identifiant unique du Provider (par exemple, "storage", "s3").

name:

string
Nom lisible destiné à l’affichage dans l’interface utilisateur.

description?:

string
Courte description.

configSchema?:

Record<string, unknown>
JSON Schema décrivant la configuration propre au Provider. Utilisé par l’interface utilisateur pour afficher les formulaires de configuration.

createBlobStore:

(config: TConfig) => BlobStore | Promise<BlobStore>
Crée une instance de BlobStore lors de l’exécution à partir de la configuration stockée. Appelé lorsque Editor résout un stockage de blobs avec MastraEditor.resolveBlobStore(providerId, config).

Implémenter un Provider
Lien direct vers Implémenter un Provider

src/providers/my-blob-store.ts
import type { BlobStore, BlobStoreProvider } from '@mastra/core/editor'

export const myBlobStoreProvider: BlobStoreProvider<{ bucket: string; region: string }> = {
id: 'my-blob-store',
name: 'My Blob Store',
description: 'Object-store-backed blob storage.',
configSchema: {
type: 'object',
required: ['bucket', 'region'],
properties: {
bucket: { type: 'string' },
region: { type: 'string' },
},
},
async createBlobStore(config): Promise<BlobStore> {
return createMyBlobStore({ bucket: config.bucket, region: config.region })
},
}

Lorsqu’aucun providerId n’est transmis à MastraEditor.resolveBlobStore(), Editor utilise par défaut le domaine blobs du backend de stockage.