Nodes/ComfyUI-MinioConnector/Minio Upload Folder ๐Ÿ‘
ComfyUI Node

Minio Upload Folder ๐Ÿ‘

Dump a whole folder of outputs onto your MinIO server in one run โ€” structure preserved

By MieMieeeeeยทCreated about a year agoยทUpdated about a year agoยท 5
Minio Upload Folder ๐Ÿ‘
  • minio_connector
  • log
โ—„bucket_nameโ–บ
โ—„folder_pathoutputโ–บ

Sometimes one file isn't the job - a day's worth of generations is. MinioUploadFolder walks an entire folder under your ComfyUI directory and uploads everything inside to a MinIO bucket, keeping the folder structure intact on the remote side. It's the node you build a "back up my outputs" or "sync my results to the NAS" workflow around.

What it does. Point it at a folder, it recursively walks it, and every file inside becomes an object in the bucket with a key that mirrors the local path relative to the folder you gave it. Upload output and a file at output/batches/tuesday/0001.png lands as object batches/tuesday/0001.png. The layout survives the trip, which matters when you're pulling it back down later or feeding it to another service that expects a directory tree.

The inputs:

  • minio_connector - from InitMinioConnector.
  • bucket_name - the destination.
  • folder_path - relative to the ComfyUI root, default output. Just "output" as the default tells you the intended use: shove your generation results to storage.

That's the whole surface. No pattern filter, no prefix, no dry run - and that's worth a beat. The Aliyun folder-upload sibling in this pack has a filename pattern filter, but the MinIO one doesn't. If you only want PNGs from a folder that also holds masks or JSON, you filter upstream or you're uploading everything.

How it works. It joins your path onto folder_paths.base_path, then os.walks it, computing each object name as the relative path and calling the SDK's fput_object per file. Each upload gets the same MD5-vs-ETag skip check as the single-file node, so unchanged files are skipped and re-running the sync is fast instead of re-blowing the whole folder up the pipe. Results come back as one log string with a line per file.

Install. This whole pack installs at once. ComfyUI Manager, search "ComfyUI-MinioConnector", restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/MieMieeeee/ComfyUI-MinioConnector
cd ComfyUI-MinioConnector
pip install -r requirements.txt

Light dependency footprint (just the minio client); nothing to download, nothing GPU-related.

Gotchas. The obvious one is scope: the folder path is resolved under the ComfyUI directory by design, and walking is recursive - so don't point it at a folder with more content than you meant to push. The bucket-missing S3Error also bites here; MinioCreateBucketIfNotExists upstream fixes it cleanly. And remember this node inherits whatever credentials the init node carries - a folder of private generations landing in a bucket with loose permissions is on you, not on MinIO.

Category๐Ÿ‘ Minio-Connector/๐Ÿ‘ Minio Connector

Inputs (3)

NameTypeDefaultDescription
minio_connectorMINIO_CONNECTORโ€”
bucket_nameSTRINGโ€”
folder_pathSTRINGoutputโ€”

Outputs (1)

NameTypeDescription
logSTRINGโ€”