# File (read / write) - Workflow node | Docs - nodulz

Source: https://nodulz.com/docs/nodes/file_io

Language: en

Read or write a file on local disk or a remote server (SSH)

## Usage and specifics

path is on the execution target. Select local disk or an SSH server; encoding distinguishes UTF-8 and base64. append and createDirectories control writes.

Technical type : `file_io`. Runtime : `nodulz`.

## Credentials and prerequisites

- [Create and configure the credential : ssh](/docs/credentials/ssh)

Create credentials in your nodulz instance’s Credentials area, then select them on the node. Availability depends on ownership and sharing. See the [credentials guide](/docs/credentials) for access and rotation.

## Parameters

Names below are technical keys. Defaults are not a ready-to-run configuration: complete fields required by your operation. Paths containing [] describe list items; some fields depend on the selected mode.

| Parameter | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `operation` | `enum` | `"read"` | `read`, `write` |
| `path` | `string` | `""` | - |
| `content` | `string` | `""` | - |
| `encoding` | `enum` | `"base64"` | `utf8`, `base64` |
| `mimeType` | `string` | `""` | - |
| `append` | `boolean` | `false` | - |
| `createDirectories` | `boolean` | `true` | - |
| `executionTarget` | `union` | `{"kind":"host"}` | - |
| `executionTarget.kind` | `literal` | `"host"` | `host`, `remote_server`, `kube`, `swarm` |
| `executionTarget.serverId` | `string` | - | -; min 1 |
| `executionTarget.provider` | `enum` | - | `aws`, `gcp`, `scaleway`, `ovh`, `azure`, `digitalocean`, `hetzner` |
| `executionTarget.clusterId` | `string` | - | -; min 1 |
| `executionTarget.namespace` | `string` | - | - |

## Configuration help

| Setting | Purpose and guidance |
| --- | --- |
| `operation`<br>Operation | Read returns file content (data as base64). Write creates or updates a file. |
| `encoding`<br>Encoding | UTF-8 for text; base64 for binary (PDF, images). Read file output always includes data as base64. |
| `content`<br>Content | Text or base64 depending on encoding. You can map nodes.convert1.data from Convert to file. |
| `append`<br>Append | When enabled, appends to the existing file instead of overwriting. |
| `createDirectories`<br>Create directories | Creates missing parent directories before writing. |
| `mimeType`<br>MIME type | Optional - inferred from the file extension when empty. |

## Examples

- Host path: invoices/march.pdf
- PDF: Read file → Extract from file (PDF) with input nodes.read1.data
- Path: exports/result.json

## Initial configuration

Initial catalog configuration example, to adapt before running. Keep secrets in credentials.

```json
{
  "operation": "read",
  "path": "",
  "content": "",
  "encoding": "base64",
  "mimeType": "",
  "append": false,
  "createDirectories": true,
  "executionTarget": {
    "kind": "host"
  }
}
```

## Verification

Test with representative data. Check node output in the inspector and logs, then use editor mapping for downstream fields. A trigger test with a simulated payload does not validate external service delivery.

See also : [Expressions and data](/docs/expressions), [Executions](/docs/executions), [Node catalog](/docs/nodes).

## Explore further

- [Features - nodulz](https://nodulz.com/product/overview)
- [Node catalog - nodulz](https://nodulz.com/product/catalog)
- [MCP server - nodulz](https://nodulz.com/product/mcp)
- [Pricing - nodulz](https://nodulz.com/pricing)
- [Use cases and workflow automation - nodulz](https://nodulz.com/use-cases)
- [Choose what your workflows can do. - nodulz](https://nodulz.com/compare)
- [Documentation - nodulz](https://nodulz.com/docs)
