GCSFilesystem
Google Cloud Storage にファイルを保存します。インターフェースの詳細は、WorkspaceFilesystem インターフェースを参照してください。
インストールインストールへの直接リンク
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/gcs
pnpm add @mastra/gcs
yarn add @mastra/gcs
bun add @mastra/gcs
使用方法使用方法への直接リンク
Workspace に GCSFilesystem を追加して Agent に割り当てます。
import { Agent } from '@mastra/core/agent'
import { Workspace } from '@mastra/core/workspace'
import { GCSFilesystem } from '@mastra/gcs'
const workspace = new Workspace({
filesystem: new GCSFilesystem({
bucket: 'my-gcs-bucket',
projectId: 'my-project-id',
credentials: JSON.parse(process.env.GCS_SERVICE_ACCOUNT_KEY),
}),
})
const agent = new Agent({
id: 'file-agent',
name: 'file-agent',
model: 'anthropic/claude-opus-4-7',
workspace,
})
Application Default Credentials を使用するApplication Default Credentials を使用するへの直接リンク
Google Cloud 上で実行する場合や gcloud CLI が設定済みの場合は、認証情報を省略できます。
import { GCSFilesystem } from '@mastra/gcs'
const filesystem = new GCSFilesystem({
bucket: 'my-gcs-bucket',
// Uses Application Default Credentials automatically
})
Application Default Credentials(ADC)は、次の順序で認証情報を自動検出します。
- 環境変数
GOOGLE_APPLICATION_CREDENTIALS(サービスアカウントキーファイルへのパス) - GCP(Compute Engine、Cloud Run、GKE など)で実行する場合のデフォルトサービスアカウント
gcloud auth application-default loginで取得したユーザー認証情報(ローカル開発向け)
キーファイルのパスを使用するキーファイルのパスを使用するへの直接リンク
サービスアカウントキーファイルへのパスを渡すこともできます。
import { GCSFilesystem } from '@mastra/gcs'
const filesystem = new GCSFilesystem({
bucket: 'my-gcs-bucket',
projectId: 'my-project-id',
credentials: '/path/to/service-account-key.json',
})
コンストラクターパラメーターコンストラクターパラメーターへの直接リンク
bucket:
string
GCS バケット名。
projectId?:
string
GCS プロジェクト ID。サービスアカウント認証情報を使用する場合は必須です。
credentials?:
object | string
サービスアカウントキーの JSON オブジェクトまたはキーファイルへのパス。未指定の場合は Application Default Credentials を使用します。
prefix?:
string
すべてのキーに付加する任意のプレフィックス(サブディレクトリとして機能します)。
id?:
string
= Auto-generated
この Filesystem インスタンスの一意な識別子。
displayName?:
string
UI に表示するわかりやすい名前。
icon?:
FilesystemIcon
UI に表示するアイコンの識別子。
description?:
string
UI に表示する Filesystem の短い説明。
readOnly?:
boolean
= false
true の場合、すべての書き込み操作を禁止します。
endpoint?:
string
カスタム API エンドポイント URL。エミュレーターを使用するローカル開発向けです。
プロパティプロパティへの直接リンク
id:
string
Filesystem インスタンスの識別子。
name:
string
Provider 名('GCSFilesystem')。
provider:
string
Provider 識別子('gcs')。
bucket:
string
GCS バケット名。
readOnly:
boolean | undefined
Filesystem が読み取り専用モードかどうか。
メソッドメソッドへの直接リンク
GCSFilesystem は 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: 'GCSFilesystem', provider: 'gcs', status: 'ready' }
getMountConfig()getmountconfigへの直接リンク
この種類の Filesystem のマウントに対応する Sandbox 向けに、マウント設定を返します。
const config = filesystem.getMountConfig()
// { type: 'gcs', bucket: 'my-bucket', ... }
E2B Sandbox にマウントするE2B Sandbox にマウントするへの直接リンク
GCSFilesystem を E2B Sandbox にマウントすると、バケットへローカルディレクトリとしてアクセスできます。
import { Workspace } from '@mastra/core/workspace'
import { GCSFilesystem } from '@mastra/gcs'
import { E2BSandbox } from '@mastra/e2b'
const workspace = new Workspace({
mounts: {
'/data': new GCSFilesystem({
bucket: 'my-gcs-bucket',
projectId: 'my-project-id',
credentials: JSON.parse(process.env.GCS_SERVICE_ACCOUNT_KEY),
}),
},
sandbox: new E2BSandbox({ id: 'dev-sandbox' }),
})
マウントの詳細は、E2BSandbox リファレンスを参照してください。