FileSystem
サンドボックス内でのファイルシステム操作を提供します。
Constructors
new FileSystem()
new FileSystem( sandboxId: string, clientConfig: Configuration, toolboxApi: ToolboxApi, getRootDir: () => Promise<string>): FileSystemParameters:
sandboxIdstringclientConfigConfigurationtoolboxApiToolboxApigetRootDir() => Promise<string>
Returns:
FileSystem
Methods
createFolder()
createFolder(path: string, mode: string): Promise<void>指定した権限でサンドボックス内に新しいディレクトリを作成します。
Parameters:
pathstring - ディレクトリを作成するパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。modestring - 8 進数形式のディレクトリ権限(例: “755”)
Returns:
Promise<void>
Example:
// 標準的な権限でディレクトリを作成await fs.createFolder('app/data', '755');deleteFile()
deleteFile(path: string): Promise<void>サンドボックスからファイルまたはディレクトリを削除します。
Parameters:
pathstring - 削除するファイルまたはディレクトリのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。
Returns:
Promise<void>
Example:
// ファイルを削除await fs.deleteFile('app/temp.log');downloadFile()
Call Signature
downloadFile(remotePath: string, timeout?: number): Promise<Buffer<ArrayBufferLike>>サンドボックスからファイルをダウンロードします。このメソッドはファイル全体をメモリに読み込むため、 大きなファイルのダウンロードには推奨されません。
Parameters:
remotePathstring - ダウンロードするファイルのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。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:
remotePathstring - サンドボックス内でダウンロードするファイルのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。localPathstring - ダウンロードしたファイルの保存先パス。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:
pathstring - 検索対象のディレクトリ。相対パスはユーザーの ルートディレクトリを基準に解決されます。patternstring - 検索パターン
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:
pathstring - ファイルまたはディレクトリのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。
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[]>サンドボックス内のディレクトリの内容を一覧表示します。
パラメータ:
pathstring - 一覧表示するディレクトリのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。
戻り値:
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>ファイルまたはディレクトリを移動または名前変更します。
パラメータ:
sourcestring - 移動元のパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。destinationstring - 移動先のパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。
戻り値:
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[]>複数のファイル内のテキストを置換します。
パラメータ:
filesstring[] - 処理するファイルパスの配列。相対パスはユーザーのpatternstring - 置換対象のパターンnewValuestring - 置換後のテキスト
戻り値:
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>サンドボックス内で、名前パターンに一致するファイルやディレクトリを検索します。
パラメータ:
pathstring - 検索対象のディレクトリ。相対パスはユーザーのpatternstring - ファイル名のパターン(グロブ対応)
戻り値:
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>ファイルまたはディレクトリの権限と所有権を設定します。
パラメータ:
pathstring - ファイルまたはディレクトリのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。permissionsFilePermissionsParams - 権限設定
戻り値:
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>サンドボックスにファイルをアップロードします。このメソッドはファイル全体をメモリに読み込むため、大きなファイルのアップロードには推奨されません。
パラメータ:
fileBuffer - アップロードするファイルのバッファ。remotePathstring - サンドボックス内のアップロード先パス。相対パスはユーザーの ルートディレクトリを基準に解決されます。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>ローカルファイルシステムからサンドボックスへファイルをアップロードします。このメソッドはストリーミングでアップロードを行うため、大きなファイルのアップロードに適しています。
パラメータ:
localPathstring - アップロードするローカルファイルのパス。remotePathstring - サンドボックス内の保存先パス。相対パスはユーザーのルートディレクトリを基準に解決されます。timeout?number - アップロード操作のタイムアウト(秒)。0 はタイムアウトなしを意味します。 既定値は 30 分です。
戻り値:
Promise<void>
例:
// ローカルファイルをアップロードawait fs.uploadFile('local_file.txt', 'tmp/file.txt');uploadFiles()
uploadFiles(files: FileUpload[], timeout?: number): Promise<void>複数のファイルをサンドボックスにアップロードします。保存先パスに既にファイルが存在する場合は上書きされます。
パラメータ:
filesFileUpload[] - アップロードするファイルの配列。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
サンドボックスにアップロードするファイルを表します。
プロパティ:
destinationstring - サンドボックス内の絶対パス。相対パスはユーザーの ルートディレクトリを基準に解決されます。sourcestring | Buffer<ArrayBufferLike> - アップロード対象のファイル。Buffer の場合、ファイル内容として解釈され、メモリに読み込まれます。 メモリに収まることを確認してください。収まらない場合はローカルファイルパスを使用すると、その内容がサンドボックスへストリーミングされます。