メインコンテンツへ移動

AzureBlobFilesystem

Azure Blob Storage コンテナにファイルを保存します。インターフェースの詳細は、WorkspaceFilesystem インターフェースを参照してください。

インストール
インストールへの直接リンク

npm install @mastra/azure

使用方法
使用方法への直接リンク

Workspace に AzureBlobFilesystem を追加して Agent に割り当てます。

import { Agent } from '@mastra/core/agent'
import { Workspace } from '@mastra/core/workspace'
import { AzureBlobFilesystem } from '@mastra/azure/blob'

const workspace = new Workspace({
filesystem: new AzureBlobFilesystem({
container: 'my-container',
connectionString: process.env.AZURE_STORAGE_CONNECTION_STRING,
}),
})

const agent = new Agent({
id: 'file-agent',
name: 'file-agent',
model: 'anthropic/claude-opus-4-7',
workspace,
})

アカウントキー
アカウントキーへの直接リンク

完全な接続文字列を渡さない場合は、アカウント名とアカウントキーを使用します。

import { AzureBlobFilesystem } from '@mastra/azure/blob'

const filesystem = new AzureBlobFilesystem({
container: 'my-container',
accountName: process.env.AZURE_STORAGE_ACCOUNT_NAME,
accountKey: process.env.AZURE_STORAGE_ACCOUNT_KEY,
})

Shared Access Signature トークン
Shared Access Signature トークンへの直接リンク

Shared Access Signature(SAS)トークンは、accountName または endpoint と組み合わせて使用します。

import { AzureBlobFilesystem } from '@mastra/azure/blob'

const filesystem = new AzureBlobFilesystem({
container: 'my-container',
accountName: process.env.AZURE_STORAGE_ACCOUNT_NAME,
sasToken: process.env.AZURE_STORAGE_SAS_TOKEN,
})

DefaultAzureCredential
DefaultAzureCredentialへの直接リンク

環境から Azure ID の認証情報を取得できる場合は、DefaultAzureCredential を使用します。

import { AzureBlobFilesystem } from '@mastra/azure/blob'

const filesystem = new AzureBlobFilesystem({
container: 'my-container',
accountName: process.env.AZURE_STORAGE_ACCOUNT_NAME,
useDefaultCredential: true,
})

DefaultAzureCredential を使用する場合は、@azure/identity をインストールします。

npm install @azure/identity

コンストラクターパラメーター
コンストラクターパラメーターへの直接リンク

container:

string
Azure Blob Storage のコンテナ名。

connectionString?:

string
完全な Azure Storage 接続文字列。他の認証オプションより優先されます。

accountName?:

string
Azure Storage アカウント名。connectionString または endpoint を使用しない場合は必須です。

accountKey?:

string
Azure Storage アカウントキー。

sasToken?:

string
Shared Access Signature トークン。accountName または endpoint が必要です。

useDefaultCredential?:

boolean
= false
@azure/identity の DefaultAzureCredential を使用するかどうか。

endpoint?:

string
カスタム Blob サービスのエンドポイント URL。Azurite を使ったローカル開発に使用します。

prefix?:

string
すべてのキーに付加する任意のプレフィックス(サブディレクトリとして機能します)。

id?:

string
= Auto-generated
この Filesystem インスタンスの一意な識別子。

displayName?:

string
UI に表示するわかりやすい名前。

icon?:

FilesystemIcon
UI に表示するアイコンの識別子。

description?:

string
UI に表示する Filesystem の短い説明。

readOnly?:

boolean
= false
true の場合、すべての書き込み操作を禁止します。

プロパティ
プロパティへの直接リンク

id:

string
Filesystem インスタンスの識別子。

name:

string
Provider 名('AzureBlobFilesystem')。

provider:

string
Provider 識別子('azure-blob')。

readOnly:

boolean | undefined
Filesystem が読み取り専用モードかどうか。

メソッド
メソッドへの直接リンク

AzureBlobFilesystem は WorkspaceFilesystem インターフェースを実装し、標準の Filesystem メソッドをすべて提供します。

  • readFile(path, options?) - ファイルの内容を読み取ります
  • writeFile(path, content, options?) - ファイルに内容を書き込みます
  • appendFile(path, content) - ファイルに内容を追記します
  • deleteFile(path, options?) - ファイルを削除します
  • copyFile(src, dest, options?) - ファイルをコピーします
  • moveFile(src, dest, options?) - ファイルを移動または名前変更します
  • mkdir(path, options?) - ディレクトリを作成します
  • rmdir(path, options?) - ディレクトリを削除します
  • readdir(path, options?) - ディレクトリの内容を一覧表示します
  • exists(path) - パスが存在するか確認します
  • stat(path) - ファイルまたはディレクトリのメタデータを取得します

init()
initへの直接リンク

Filesystem を初期化し、コンテナへのアクセスと認証情報を検証します。

await filesystem.init()

getInfo()
getinfoへの直接リンク

この Filesystem インスタンスのメタデータを返します。

const info = filesystem.getInfo()
// { id: '...', name: 'AzureBlobFilesystem', provider: 'azure-blob', status: 'ready' }

getContainer()
getcontainerへの直接リンク

基盤となる Azure Blob Storage の ContainerClient を返します。

const container = await filesystem.getContainer()

getMountConfig()
getmountconfigへの直接リンク

Azure Blob Filesystem のマウントに対応する Sandbox Provider 向けのマウント設定を返します。

const config = filesystem.getMountConfig()
// { type: 'azure-blob', container: 'my-container', ... }
注記

Azure Blob を Sandbox にマウントするには、Sandbox が azure-blob マウント設定に対応している必要があります。Sandbox Provider が Azure Blob のマウントに対応していない場合、Workspace からファイルを直接操作するには filesystem を使用してください。