ExDaytona.Api.FileSystem (ex_daytona v0.3.0)

Copy Markdown View Source

API calls for all endpoints tagged FileSystem.

Summary

Functions

Create a folder Create a folder with the specified path and optional permissions

Delete a file or directory Delete a file or directory at the specified path

Download a file Download a file by providing its path

Download multiple files Download multiple files by providing their paths. Successful files are returned as multipart parts named file. Per-file failures are returned as multipart parts named error with JSON payloads shaped like ErrorResponse.

Find text in files Search for text pattern within files in a directory

Get file information Get detailed information about a file or directory

List files and directories List files and directories in the specified path. Use the optional depth parameter to list recursively: depth=1 (default) lists the directory's entries, depth=2 also includes their children, and so on.

Move or rename file/directory Move or rename a file or directory from source to destination

Replace text in files Replace text pattern with new value in multiple files

Search files by pattern Search for files matching a specific pattern in a directory

Set file permissions Set file permissions, ownership, and group for a file or directory

Upload a file Upload a file to the specified path. Accepts either multipart/form-data (field "file") or a raw request body (e.g. application/octet-stream). Parent directories are created if missing; an existing file is overwritten.

Upload multiple files Upload multiple files with their destination paths

Functions

create_folder(connection, path, mode, opts \\ [])

@spec create_folder(Tesla.Env.client(), String.t(), String.t(), keyword()) ::
  {:ok, nil}
  | {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:error, Tesla.Env.t()}

Create a folder Create a folder with the specified path and optional permissions

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • path (String.t): Folder path to create
  • mode (String.t): Octal permission mode (default: 0755)
  • opts (keyword): Optional parameters

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure

delete_file(connection, path, opts \\ [])

@spec delete_file(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, nil}
  | {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:error, Tesla.Env.t()}

Delete a file or directory Delete a file or directory at the specified path

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • path (String.t): File or directory path to delete
  • opts (keyword): Optional parameters
    • :recursive (boolean()): Enable recursive deletion for directories

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure

download_file(connection, path, opts \\ [])

@spec download_file(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:ok, String.t()}
  | {:error, Tesla.Env.t()}

Download a file Download a file by providing its path

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • path (String.t): File path to download
  • opts (keyword): Optional parameters

Returns

  • {:ok, String.t} on success
  • {:error, Tesla.Env.t} on failure

download_files(connection, files_download_request, opts \\ [])

@spec download_files(
  Tesla.Env.client(),
  ExDaytona.Model.FilesDownloadRequest.t(),
  keyword()
) ::
  {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:ok, %{optional(String.t()) => any()}}
  | {:error, Tesla.Env.t()}

Download multiple files Download multiple files by providing their paths. Successful files are returned as multipart parts named file. Per-file failures are returned as multipart parts named error with JSON payloads shaped like ErrorResponse.

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • files_download_request (FilesDownloadRequest): Paths of files to download
  • opts (keyword): Optional parameters

Returns

  • {:ok, %{}} on success
  • {:error, Tesla.Env.t} on failure

find_in_files(connection, path, pattern, opts \\ [])

@spec find_in_files(Tesla.Env.client(), String.t(), String.t(), keyword()) ::
  {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:ok, [ExDaytona.Model.Match.t()]}
  | {:error, Tesla.Env.t()}

Find text in files Search for text pattern within files in a directory

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • path (String.t): Directory path to search in
  • pattern (String.t): Text pattern to search for
  • opts (keyword): Optional parameters

Returns

  • {:ok, [%Match{}, ...]} on success
  • {:error, Tesla.Env.t} on failure

get_file_info(connection, path, opts \\ [])

@spec get_file_info(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:ok, ExDaytona.Model.FileInfo.t()}
  | {:error, Tesla.Env.t()}

Get file information Get detailed information about a file or directory

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • path (String.t): File or directory path
  • opts (keyword): Optional parameters

Returns

  • {:ok, ExDaytona.Model.FileInfo.t} on success
  • {:error, Tesla.Env.t} on failure

list_files(connection, opts \\ [])

@spec list_files(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, [ExDaytona.Model.FileInfo.t()]}
  | {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:error, Tesla.Env.t()}

List files and directories List files and directories in the specified path. Use the optional depth parameter to list recursively: depth=1 (default) lists the directory's entries, depth=2 also includes their children, and so on.

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • opts (keyword): Optional parameters
    • :path (String.t): Directory path to list (defaults to working directory)
    • :depth (integer()): How many levels deep to list (default: 1, must be >= 1)

Returns

  • {:ok, [%FileInfo{}, ...]} on success
  • {:error, Tesla.Env.t} on failure

move_file(connection, source, destination, opts \\ [])

@spec move_file(Tesla.Env.client(), String.t(), String.t(), keyword()) ::
  {:ok, nil}
  | {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:error, Tesla.Env.t()}

Move or rename file/directory Move or rename a file or directory from source to destination

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • source (String.t): Source file or directory path
  • destination (String.t): Destination file or directory path
  • opts (keyword): Optional parameters

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure

replace_in_files(connection, replace_request, opts \\ [])

Replace text in files Replace text pattern with new value in multiple files

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • replace_request (ReplaceRequest): Replace request
  • opts (keyword): Optional parameters

Returns

  • {:ok, [%ReplaceResult{}, ...]} on success
  • {:error, Tesla.Env.t} on failure

search_files(connection, path, pattern, opts \\ [])

Search files by pattern Search for files matching a specific pattern in a directory

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • path (String.t): Directory path to search in
  • pattern (String.t): File pattern to match (e.g., .txt, .go)
  • opts (keyword): Optional parameters

Returns

  • {:ok, ExDaytona.Model.SearchFilesResponse.t} on success
  • {:error, Tesla.Env.t} on failure

set_file_permissions(connection, path, opts \\ [])

@spec set_file_permissions(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, nil}
  | {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:error, Tesla.Env.t()}

Set file permissions Set file permissions, ownership, and group for a file or directory

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • path (String.t): File or directory path
  • opts (keyword): Optional parameters
    • :owner (String.t): Owner (username or UID)
    • :group (String.t): Group (group name or GID)
    • :mode (String.t): File mode in octal format (e.g., 0755)

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure

upload_file(connection, path, opts \\ [])

@spec upload_file(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:ok, ExDaytona.Model.UploadedFile.t()}
  | {:error, Tesla.Env.t()}

Upload a file Upload a file to the specified path. Accepts either multipart/form-data (field "file") or a raw request body (e.g. application/octet-stream). Parent directories are created if missing; an existing file is overwritten.

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • path (String.t): Destination path for the uploaded file
  • opts (keyword): Optional parameters
    • :file (String.t): File to upload (multipart/form-data)

Returns

  • {:ok, ExDaytona.Model.UploadedFile.t} on success
  • {:error, Tesla.Env.t} on failure

upload_files(connection, opts \\ [])

@spec upload_files(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, nil}
  | {:ok, ExDaytona.Model.ErrorResponse.t()}
  | {:error, Tesla.Env.t()}

Upload multiple files Upload multiple files with their destination paths

Parameters

  • connection (ExDaytona.Connection): Connection to server
  • opts (keyword): Optional parameters

Returns

  • {:ok, nil} on success
  • {:error, Tesla.Env.t} on failure