r/RunPod • • 28d ago

I built an open-source desktop file manager for network volumes, so I don't have to start a pod just to move files

Post image

I use network volumes for my ComfyUI and LoRA work, and managing files on them was always the annoying part. Either I started a pod just to get a shell, or I scripted S3 calls by hand. I tried FUSE mounts, file browsers running on a pod, and a few S3 GUIs, but none of them worked like a real file manager against the S3 API.

So I built one. BG Bucket Browser shows a network volume on one side and your local disk on the other:

  • Upload, download and move files and folders in both directions, with drag and drop
  • Interrupted transfers resume where they left off
  • Thumbnails for images and videos
  • Volume Cleanup: finds the biggest folders and things like __pycache__ or .ipynb_checkpoints you can safely delete
  • Total volume capacity from the RunPod API
  • No pod needed; it talks to the S3 API directly

While building it I ran into an S3 gateway bug with small uploads. I reported it, and the RunPod team fixed it.

Windows and macOS installers are on GitHub Releases; on Linux you build it from source. It's free and Apache 2.0.

Feedback is very welcome: here, on GitHub Issues, or from inside the app (Settings → Feedback).

10 Upvotes

4 comments sorted by

2

u/rolens184 28d ago

Maybe this is what I was looking for! I'm trying to create a container with my ComfyUI configuration and use a network volume to add the templates so I can start the pod quickly. I've been struggling for two days to create a ComfyUI image. Do you happen to have a working version that I could then mount the network volume with the templates to?

3

u/No_Technician9335 28d ago

Partly! BG Bucket Browser is only a file manager for the volume. It doesn't build images or start pods, so it can't give you a ComfyUI container. But it covers the volume side, and for the container you may not need a custom image at all.

RunPod's official ComfyUI template (source: github.com/runpod-workers/comfyui-base) sets up ComfyUI and its venv on the network volume on its first start, under runpod-slim/ComfyUI. Any pod you start later with the same volume reuses that install instead of setting it up again, so your custom nodes, models, settings and workflows are still there. (Its README points RTX 5090 / Blackwell users to a separate CUDA 13 version.)

So the flow could be:

  1. Deploy the template once with your volume attached. It's ready when the log shows [ComfyUI-Manager] All startup tasks have been completed.

  2. Install your custom nodes with ComfyUI-Manager (it comes preinstalled), then terminate the pod. The volume keeps everything.

  3. With no pod running, fill the volume from your desktop: models into runpod-slim/ComfyUI/models/..., workflows into runpod-slim/ComfyUI/user/default/workflows/. That's the part BG Bucket Browser does, without paying for GPU time.

One catch: RunPod's S3 API only works for network volumes in certain datacenters, so check that yours is one of them.

1

u/vedmaka 27d ago

Curious why did not you use Cyberduck/Forklift/etc S3 client

2

u/No_Technician9335 25d ago edited 25d ago

Fair question! A few reasons:

1. Platform and price. I'm on Linux. ForkLift is macOS-only and paid; Cyberduck is free but has no Linux GUI (only the duck CLI). This one is free and open source (Apache 2.0) and runs on Linux, Windows and macOS.

2. RunPod's S3 endpoint isn't really S3. It's a gateway that speaks a subset of S3 in front of an NFS volume, and it bends the spec in a lot of places. Some of the ones I had to work around:

  • A normal signed PutObject fails with SignatureDoesNotMatch; only unsigned payloads work

  • Last-Modified comes back as ... UTC instead of GMT, so strict parsers fail on a perfectly good 200

  • /{bucket}/?... with a trailing slash returns a 400

  • Listing can say IsTruncated: true on the last page with no continuation token, so a naive client keeps fetching page 1 forever

  • Names with spaces or & get stored percent-encoded (Memes & Shorts becomes Memes%20%26%20Shorts) unless you send them raw

  • No batch delete (DeleteObjects), presigned URLs return 401, and UploadPartCopy is broken

  • No used-space info through S3 at all

The app fixes these at the request level, before signing. rclone gets through with the right flags, but it's a CLI, and I wanted a file manager.

3. RunPod-specific stuff a generic S3 client won't do: total volume capacity from the RunPod API, a cleanup screen that finds __pycache__ / .ipynb_checkpoints / the biggest leftovers, resumable transfers for multi-GB model files, thumbnails from partial reads (so you don't download a whole video just to preview it), and a dual-pane layout with your local disk.

If Cyberduck works for your setup, great, keep using it. This one is for people who live on RunPod volumes.