Ino S3 Upload String
A string, straight to S3 — no temp file, no fuss
- string
- success
- message
- file_name
- s3_string_path
Most of what lands in S3 isn't images - it's metadata, configs, prompts, logs. InoS3UploadString is the node for those: it takes a string from your graph and uploads it directly to S3 as a text object, with no temp file written to disk. The "no temp file" part is the notable design choice; sibling upload nodes stage media through temp, but a string is small enough to go straight up. Wire a prompt, a JSON config, or a run's metadata into string, pick txt, json, or ini, and it's in the bucket.
The output side is generous, too: it returns the string back (so you can keep chaining), the success flag, the generated filename, and the full S3 path - so whatever comes next in the workflow knows exactly where the object lives. It's a natural pairing with a metadata-collection chain: build your run's JSON in the graph, upload it here, and the object key feeds straight into a download node or a presigned URL generator.
How it works
Required inputs: enabled, string (the content), save_as (a dropdown: txt, json, or ini - controls the extension), and s3_path_key (the destination key). Optional: s3_config, unique_file_name (default True - when on, the node generates a unique name rather than using your filename), and filename.
The unique_file_name toggle is the one to understand: with it True (default), every upload gets a unique name, which is what you want when each run's metadata must not clobber the last. Flip it to False and it uses the filename you provide instead, for the "always write to the same key" pattern.
Outputs: string (pass-through), success, message, file_name (the final name), and s3_string_path (the full object key).
Credentials via s3_config JSON or the env vars (S3_ACCESS_KEY, S3_ACCESS_SECRET, S3_BUCKET_NAME, S3_ENDPOINT_URL, S3_REGION_NAME).
Installing it
Part of the 125+-node ComfyUI-InoNodes pack by nobandegani:
cd ComfyUI/custom_nodes
git clone https://github.com/nobandegani/comfyui_ino_nodes
cd comfyui_ino_nodes
pip install -r requirements.txt
Or search "ComfyUI Ino Nodes" in ComfyUI Manager, install, restart. Needs inopyutils and a current V3-schema ComfyUI.
Common issues
The unique_file_name default trips people who expect deterministic keys: leave it on and every run creates a new object, so don't rely on a fixed s3_string_path across runs - read the output each time. If you do want a stable key (e.g. "latest_config.json" that everything reads), turn it off and set filename. Also, save_as only controls the extension and content handling - it doesn't validate that your string is actually valid JSON when you pick json, so malformed JSON uploads happily and only bites you downstream when something tries to parse it. And s3_path_key with unique_file_name on still needs a valid path, so give it a folder prefix like runs/ rather than leaving it empty.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| enabled | BOOLEAN | true | — |
| string | STRING | — | |
| save_as | COMBO | 3 options: txt, json, ini | |
| s3_path_key | STRING | — | |
| s3_configopt | STRING | {"access_key_id": "", "access_key_secret": "", "bucket_name": "", "endpoint_url": "", "region_name": ""} | you can leave it empty and pass it with env vars |
| unique_file_nameopt | BOOLEAN | true | — |
| filenameopt | STRING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| string | STRING | — |
| success | BOOLEAN | — |
| message | STRING | — |
| file_name | STRING | — |
| s3_string_path | STRING | — |