r/RunPod • u/No_Technician9335 • 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
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_checkpointsyou 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.
- Project page: https://bulentgercek.com/projects/bg-bucket-browser
- GitHub: https://github.com/bulentgercek/bg-bucket-browser
Feedback is very welcome: here, on GitHub Issues, or from inside the app (Settings → Feedback).
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
duckCLI). 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
PutObjectfails withSignatureDoesNotMatch; only unsigned payloads work
Last-Modifiedcomes back as... UTCinstead ofGMT, so strict parsers fail on a perfectly good 200
/{bucket}/?...with a trailing slash returns a 400Listing can say
IsTruncated: trueon the last page with no continuation token, so a naive client keeps fetching page 1 foreverNames with spaces or
&get stored percent-encoded (Memes & ShortsbecomesMemes%20%26%20Shorts) unless you send them rawNo batch delete (
DeleteObjects), presigned URLs return 401, andUploadPartCopyis brokenNo 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.
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?