Skip to content

Local File Sink

Class: LocalFileSinkBlockV1

Source: inference.core.workflows.core_steps.sinks.local_file.v1.LocalFileSinkBlockV1

The Local File Sink block saves workflow data as files on a local file system. It allows users to configure how the data is stored, either:

  • aggregating multiple entries into a single file

  • or saving each entry as a separate file.

This block is useful for logging, data export, or preparing files for subsequent processing.

File Content, File Type and Output Mode

content is expected to be the output from another block producing string values of specific types denoted by file_type.

output_mode set into append_log will make the block appending single file with consecutive entries passed to content input up to max_entries_per_file. In this mode it is important that

file_type in append_log mode

Contrary to separate_files output mode, append_log mode may introduce subtle changes into the structure of the content to properly append it into existing file, hence setting proper file_type is crucial:

  • file_type=json: in append_log mode, the block will create *.jsonl file in JSON Lines format - for that to be possible, each JSON document will be parsed and dumped to ensure that it will fit into single line.

  • file_type=csv: in append_log mode, the block will deduct the first line from the content (making it required for CSV content to always be shipped with header row) of consecutive updates into the content of already created file.

Security considerations

The block has an ability to write to the file system. If you find this unintended in your system, you can disable the block setting environmental variable ALLOW_WORKFLOW_BLOCKS_ACCESSING_LOCAL_STORAGE=False in the environment which host Workflows Execution Engine.

If you want to restrict the directory which may be used to write data - set environmental variable WORKFLOW_BLOCKS_WRITE_DIRECTORY to the absolute path of directory which you allow to be used.

Type identifier

Use the following identifier in step "type" field: roboflow_core/local_file_sink@v1to add the block as as step in your workflow.

Properties

Name Type Description Refs
name str Enter a unique identifier for this step..
file_type str Type of the file.
output_mode str Decides how to organise the content of the file.
target_directory str Target directory.
file_name_prefix str File name prefix.
max_entries_per_file int Defines how many datapoints can be appended to a single file.

The Refs column marks possibility to parametrise the property with dynamic values available in workflow runtime. See Bindings for more info.

Available Connections

Compatible Blocks

Check what blocks you can connect to Local File Sink in version v1.

Input and Output Bindings

The available connections depend on its binding kinds. Check what binding kinds Local File Sink in version v1 has.

Bindings
  • input

    • content (string): Content of the file to save.
    • target_directory (string): Target directory.
    • file_name_prefix (string): File name prefix.
    • max_entries_per_file (string): Defines how many datapoints can be appended to a single file.
  • output

    • error_status (boolean): Boolean flag.
    • message (string): String value.
Example JSON definition of step Local File Sink in version v1
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/local_file_sink@v1",
    "content": "$steps.csv_formatter.csv_content",
    "file_type": "csv",
    "output_mode": "append_log",
    "target_directory": "some/location",
    "file_name_prefix": "my_file",
    "max_entries_per_file": 1024
}