Nodes/ComfyUI-MinioConnector/Aliyun OSS Download Bucket ๐Ÿ‘
ComfyUI Node

Aliyun OSS Download Bucket ๐Ÿ‘

Pull a bucket back from Alibaba Cloud โ€” pattern-filtered, path-rewritten, and dry-runnable

By MieMieeeeeยทCreated about a year agoยทUpdated about a year agoยท 5
Aliyun OSS Download Bucket ๐Ÿ‘
  • aliyun_oss_connector
  • log
โ—„folder_pathtempโ–บ
โ—„pattern*โ–บ
โ—„replace_fromโ–บ
โ—„replace_toโ–บ
โ—„is_mockfalseโ–บ

AliyunOSSDownloadBucket is the most feature-rich node in the whole pack, and it's the one I'd argue is the reason to install it if you're on Alibaba Cloud. It pulls objects back from OSS to your ComfyUI box, and unlike the MinIO download node - which just grabs everything - this one lets you filter, rewrite paths, and dry-run before committing. That last one is the sleeper feature.

What it does. It lists every object in your bucket, filters by a pattern, downloads the matches into a folder under your ComfyUI directory, and optionally rewrites their object keys to a different local path. Think: pull only *.safetensors from the bucket into temp, and while you're at it, strip a leading models/ prefix so files land flat.

The inputs:

  • aliyun_oss_connector - from InitAliyunOSSConnector (bucket baked in).
  • folder_path - where downloads go, relative to the ComfyUI root, default temp.
  • pattern - fnmatch style, default *. Match is against the full object key, so datasets/*.jpg works.
  • replace_from / replace_to - a string replace applied to the object key to build the local path. replace_from = "models/", replace_to = "" and models/v2/lora.safetensors downloads to temp/v2/lora.safetensors. This is how you flatten or relocate a remote tree locally.
  • is_mock - the dry-run toggle, default false. Flip it on and the node logs "Mock download: <key> to <path>" for every object instead of actually transferring a byte. If you've ever watched a wrong pattern dump 3 GB onto your disk, you know why this is the feature.

How it works. It iterates the bucket with oss2.ObjectIterator, fnmatchs each key, builds the local path with the replace, and calls get_object_to_file - with the ETag-vs-MD5 skip check so re-runs only pull what changed. Each transfer gets a tqdm progress bar. Output is one log string, one line per object, or a "no match file downloaded" note if the pattern caught nothing.

Install. Same single pack install. ComfyUI Manager โ†’ search "ComfyUI-MinioConnector" โ†’ install โ†’ restart. Manual:

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

Deps are oss2, tqdm, and two Aliyun SDK packages. No models, no GPU requirements.

Gotchas. The local path is built from the replaced key, so a lazy replace_from/replace_to pair can collide files or scatter them - dry-run with is_mock first, that's literally what it's for. And unlike the MinIO download node, there's no bucket subfolder here: everything lands directly in folder_path. Two downloads into the same folder with overlapping patterns will write on top of each other. Pattern discipline is your friend.

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

Inputs (6)

NameTypeDefaultDescription
aliyun_oss_connectorALIYUN_OSS_CONNECTORโ€”
folder_pathSTRINGtempโ€”
patternSTRING*โ€”
replace_fromSTRINGโ€”
replace_toSTRINGโ€”
is_mockBOOLEANfalseโ€”

Outputs (1)

NameTypeDescription
logSTRINGโ€”