Listing 12 million S3 objects in a desktop app: a real-world test
Tested 2026-10-25 · By the BucketWorx team. BucketWorx isn't released yet; this is a development build.
The setup
| App | BucketWorx development build of 25 October 2026 (builds weren't versioned yet) |
|---|---|
| Computer | AMD Ryzen 7 5700X, 128 GB DDR4 RAM |
| Operating system | Windows 11 |
| Connection | 2.5 Gbps |
| Provider | Amazon S3, us-east-1 |
| Bucket | One bucket of images in thousands of folders. The run was stopped at 12,020,000 objects, before the end of the bucket. |
| View | Flat view: every object in the bucket, at any depth, in one list |
This is a real data set, not empty test files. File size doesn't change how fast a bucket lists, though: listing returns each object's name, size and date, never its contents. What matters is the number of objects and the length of their names. Flat view lists every object in the bucket, in every folder, as one list, so the whole bucket can be sorted and searched at once.
Results
| First rows on screen | Immediately |
|---|---|
| 12,020,000 objects listed | 20 min 7.8 s, counted from the first rows, then stopped by hand |
| Average rate | 9,952 objects per second |
| Peak memory | 9,015 MB |
| Peak CPU | 36% |
| A complete run, all 4,088,688 objects | 6 min 26.8 s: 10,569 per second, 1,976 MB peak memory, 22% peak CPU |
| Scrolling and clicking while loading | No freezes or stalls |
| Search across all 12,020,000 names | Results update as you type, faster than we could time by hand |
Why listing a big bucket is hard
S3's listing API returns at most 1,000 objects per request, and each request has to wait for the one before it, so 12,020,000 objects take at least 12,020 requests in a row. Most of the total time is therefore the provider and the network, and it will vary. The app's job is to keep up with them: show rows as they arrive, stay responsive while millions of rows load, and search all of them without stalling.
Run it yourself
Because file size doesn't affect listing, you can reproduce the test with empty objects. Upload 12,020,000 zero-byte files with names like the ones above into a test bucket, then list the whole bucket in any S3 client and time it. On S3 Standard in us-east-1, the uploads cost about $60.10 in request fees ($0.005 per 1,000), and listing them once costs a few cents. Delete the bucket afterwards.
Coming soon: BucketWorx
We're building BucketWorx, a native desktop app for Amazon S3 and S3-compatible storage, planned for Windows, macOS and Linux. This test used a development build; results from the released app will be published here. Prices and exact OS versions haven't been announced.
One email when it launches. No newsletter, no spam.
Please check your email address and try again.