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.

One unedited run, recorded on the setup below.

The setup

AppBucketWorx development build of 25 October 2026 (builds weren't versioned yet)
ComputerAMD Ryzen 7 5700X, 128 GB DDR4 RAM
Operating systemWindows 11
Connection2.5 Gbps
ProviderAmazon S3, us-east-1
BucketOne bucket of images in thousands of folders. The run was stopped at 12,020,000 objects, before the end of the bucket.
ViewFlat 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 screenImmediately
12,020,000 objects listed20 min 7.8 s, counted from the first rows, then stopped by hand
Average rate9,952 objects per second
Peak memory9,015 MB
Peak CPU36%
A complete run, all 4,088,688 objects6 min 26.8 s: 10,569 per second, 1,976 MB peak memory, 22% peak CPU
Scrolling and clicking while loadingNo freezes or stalls
Search across all 12,020,000 namesResults 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.