본문으로 건너뛰기

BlobStoreProvider

BlobStoreProviderBlob 저장소를 등록하기 위해 패키지가 구현하는 인터페이스입니다.MastraEditor. Blob 저장소에는 콘텐츠 주소 지정이 가능한 기술 Blob과 편집자가 생성한 기타 대규모 아티팩트가 보관됩니다.

내장 storage Provider는 구성된 스토리지 백엔드의 blobs 도메인을 사용합니다. 외부 Provider(예: S3)는 MastraEditorConfig.blobStores를 통해 제공합니다.

사용예
사용예에 대한 직접 링크

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

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

속성
속성에 대한 직접 링크

id:

string
고유한 Provider 식별자입니다(예: "storage", "s3").

name:

string
UI에 표시되는 사람이 읽기 쉬운 이름입니다.

description?:

string
간단한 설명입니다.

configSchema?:

Record<string, unknown>
Provider별 구성을 설명하는 JSON Schema입니다. UI에서 구성 양식을 렌더링하는 데 사용됩니다.

createBlobStore:

(config: TConfig) => BlobStore | Promise<BlobStore>
저장된 구성으로 런타임 BlobStore 인스턴스를 생성합니다. 편집기가 MastraEditor.resolveBlobStore(providerId, config)를 통해 Blob Store를 해석할 때 호출됩니다.

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

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

MastraEditor.resolveBlobStore()providerId를 전달하지 않으면 편집기는 스토리지 백엔드의 blobs 도메인으로 폴백합니다.