FileSystem
サンドボックス内でのファイルシステム操作を提供します。
Constructors
new FileSystem()
new FileSystem( sandboxId: string, clientConfig: Configuration, toolboxApi: ToolboxApi, getRootDir: () => Promise<string>): FileSystem
Parameters:
sandboxId
stringclientConfig
ConfigurationtoolboxApi
ToolboxApigetRootDir
() => Promise<string>
Returns:
FileSystem
Methods
createFolder()
createFolder(path: string, mode: string): Promise<void>
指定した権限でサンドボックス内に新しいディレクトリを作成します。
Parameters:
path
string - ディレクトリを作成するパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。mode
string - 8 進数形式のディレクトリ権限(例: “755”)
Returns:
Promise<void>
Example:
// 標準的な権限でディレクトリを作成await fs.createFolder('app/data', '755');
deleteFile()
deleteFile(path: string): Promise<void>
サンドボックスからファイルまたはディレクトリを削除します。
Parameters:
path
string - 削除するファイルまたはディレクトリのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。
Returns:
Promise<void>
Example:
// ファイルを削除await fs.deleteFile('app/temp.log');
downloadFile()
Call Signature
downloadFile(remotePath: string, timeout?: number): Promise<Buffer<ArrayBufferLike>>
サンドボックスからファイルをダウンロードします。このメソッドはファイル全体をメモリに読み込むため、 大きなファイルのダウンロードには推奨されません。
Parameters:
remotePath
string - ダウンロードするファイルのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。timeout?
number - ダウンロード操作のタイムアウト(秒)。0 はタイムアウトなしを意味します。 既定は 30 分です。
Returns:
Promise<Buffer<ArrayBufferLike>>
- ファイル内容を表す Buffer。
Example:
// ファイルをダウンロードして処理const fileBuffer = await fs.downloadFile('tmp/data.json');console.log('File content:', fileBuffer.toString());
Call Signature
downloadFile( remotePath: string, localPath: string,timeout?: number): Promise<void>
サンドボックスからファイルをダウンロードしてローカルファイルに保存します。このメソッドはストリーミングを使用して ファイルをダウンロードするため、より大きなファイルのダウンロードに適しています。
Parameters:
remotePath
string - サンドボックス内でダウンロードするファイルのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。localPath
string - ダウンロードしたファイルの保存先パス。timeout?
number - ダウンロード操作のタイムアウト(秒)。0 はタイムアウトなしを意味します。 既定は 30 分です。
Returns:
Promise<void>
Example:
// ファイルをダウンロードして保存await fs.downloadFile('tmp/data.json', 'local_file.json');
findFiles()
findFiles(path: string, pattern: string): Promise<Match[]>
サンドボックス内のファイルでテキストパターンを検索します。
Parameters:
path
string - 検索対象のディレクトリ。相対パスはユーザーの ルートディレクトリを基準に解決されます。pattern
string - 検索パターン
Returns:
Promise<Match[]>
- ファイルおよび行情報を含む一致結果の配列
Example:
// TypeScript ファイル内の TODO コメントをすべて検索const matches = await fs.findFiles('app/src', 'TODO:');matches.forEach(match => { console.log(`${match.file}:${match.line}: ${match.content}`);});
getFileDetails()
getFileDetails(path: string): Promise<FileInfo>
ファイルまたはディレクトリの詳細情報を取得します。
Parameters:
path
string - ファイルまたはディレクトリのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。
Returns:
Promise<FileInfo>
- サイズ、権限、更新時刻などの詳細情報
Example:
// ファイルの詳細を取得const info = await fs.getFileDetails('app/config.json');console.log(`Size: ${info.size}, Modified: ${info.modTime}`);
listFiles()
listFiles(path: string): Promise<FileInfo[]>
サンドボックス内のディレクトリの内容を一覧表示します。
パラメータ:
path
string - 一覧表示するディレクトリのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。
戻り値:
Promise<FileInfo[]>
- ファイルおよびディレクトリ情報の配列
例:
// List directory contentsconst files = await fs.listFiles('app/src');files.forEach(file => { console.log(`${file.name} (${file.size} bytes)`);});
moveFiles()
moveFiles(source: string, destination: string): Promise<void>
ファイルまたはディレクトリを移動または名前変更します。
パラメータ:
source
string - 移動元のパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。destination
string - 移動先のパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。
戻り値:
Promise<void>
例:
// Move a file to a new locationawait fs.moveFiles('app/temp/data.json', 'app/data/data.json');
replaceInFiles()
replaceInFiles( files: string[], pattern: string,newValue: string): Promise<ReplaceResult[]>
複数のファイル内のテキストを置換します。
パラメータ:
files
string[] - 処理するファイルパスの配列。相対パスはユーザーのpattern
string - 置換対象のパターンnewValue
string - 置換後のテキスト
戻り値:
Promise<ReplaceResult[]>
- 各ファイルに対する置換結果
例:
// Update version number across multiple filesconst results = await fs.replaceInFiles( ['app/package.json', 'app/version.ts'], '"version": "1.0.0"', '"version": "1.1.0"');
searchFiles()
searchFiles(path: string, pattern: string): Promise<SearchFilesResponse>
サンドボックス内で、名前パターンに一致するファイルやディレクトリを検索します。
パラメータ:
path
string - 検索対象のディレクトリ。相対パスはユーザーのpattern
string - ファイル名のパターン(グロブ対応)
戻り値:
Promise<SearchFilesResponse>
- 一致したファイルを含む検索結果
例:
// Find all TypeScript filesconst result = await fs.searchFiles('app', '*.ts');result.files.forEach(file => console.log(file));
setFilePermissions()
setFilePermissions(path: string, permissions: FilePermissionsParams): Promise<void>
ファイルまたはディレクトリの権限と所有権を設定します。
パラメータ:
path
string - ファイルまたはディレクトリのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。permissions
FilePermissionsParams - 権限設定
戻り値:
Promise<void>
例:
// Set file permissions and ownershipawait fs.setFilePermissions('app/script.sh', { owner: 'daytona', group: 'users', mode: '755' // シェルスクリプトに実行権限を付与});
uploadFile()
呼び出しシグネチャ
uploadFile( file: Buffer, remotePath: string,timeout?: number): Promise<void>
サンドボックスにファイルをアップロードします。このメソッドはファイル全体をメモリに読み込むため、大きなファイルのアップロードには推奨されません。
パラメータ:
file
Buffer - アップロードするファイルのバッファ。remotePath
string - サンドボックス内のアップロード先パス。相対パスはユーザーの ルートディレクトリを基準に解決されます。timeout?
number - アップロード処理のタイムアウト(秒)。0 はタイムアウトなしを意味します。 既定値は30分です。
戻り値:
Promise<void>
例:
// Upload a configuration fileawait fs.uploadFile(Buffer.from('{"setting": "value"}'), 'tmp/config.json');
呼び出しシグネチャ
uploadFile( localPath: string, remotePath: string,timeout?: number): Promise<void>
ローカルファイルシステムからサンドボックスへファイルをアップロードします。このメソッドはストリーミングでアップロードを行うため、大きなファイルのアップロードに適しています。
パラメータ:
localPath
string - アップロードするローカルファイルのパス。remotePath
string - サンドボックス内の保存先パス。相対パスはユーザーのルートディレクトリを基準に解決されます。timeout?
number - アップロード操作のタイムアウト(秒)。0 はタイムアウトなしを意味します。 既定値は 30 分です。
戻り値:
Promise<void>
例:
// ローカルファイルをアップロードawait fs.uploadFile('local_file.txt', 'tmp/file.txt');
uploadFiles()
uploadFiles(files: FileUpload[], timeout?: number): Promise<void>
複数のファイルをサンドボックスにアップロードします。保存先パスに既にファイルが存在する場合は上書きされます。
パラメータ:
files
FileUpload[] - アップロードするファイルの配列。timeout?
number = … - アップロード操作のタイムアウト(秒)。0 はタイムアウトなしを意味します。 既定値は 30 分です。
戻り値:
Promise<void>
例:
// 複数のテキストファイルをアップロードconst files = [ { source: Buffer.from('Content of file 1'), destination: '/tmp/file1.txt' }, { source: 'app/data/file2.txt', destination: '/tmp/file2.txt' }, { source: Buffer.from('{"key": "value"}'), destination: '/tmp/config.json' }];await fs.uploadFiles(files);
FilePermissionsParams
サンドボックス内のファイル権限を設定するためのパラメータ。
プロパティ:
group?
string - ファイルのグループ所有者mode?
string - 8進数形式のファイルモード/権限(例: “644”)owner?
string - ファイルのユーザー所有者
例:
const permissions: FilePermissionsParams = { mode: '644', owner: 'daytona', group: 'users'};
FileUpload
サンドボックスにアップロードするファイルを表します。
プロパティ:
destination
string - サンドボックス内の絶対パス。相対パスはユーザーの ルートディレクトリを基準に解決されます。source
string | Buffer<ArrayBufferLike> - アップロード対象のファイル。Buffer の場合、ファイル内容として解釈され、メモリに読み込まれます。 メモリに収まることを確認してください。収まらない場合はローカルファイルパスを使用すると、その内容がサンドボックスへストリーミングされます。