BlobStoreProvider
BlobStoreProvider 是套件用來向 MastraEditor 註冊 blob 儲存空間的介面。Blob 儲存空間會保存內容定址的 Skill blob,以及 Editor 產生的其他大型成品。
內建的 storage Provider 會使用已設定儲存後端的 blobs domain。外部 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 執行個體。Editor 透過 MastraEditor.resolveBlobStore(providerId, config) 解析 blob 儲存空間時會呼叫此函式。實作 Provider「實作 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 })
},
}
若未將 providerId 傳給 MastraEditor.resolveBlobStore(),Editor 會改用儲存後端的 blobs domain。
相關內容「相關內容」的直接連結
- MastraEditor 類別:Provider 登錄表與
resolveBlobStore()方法。