Large files
1 GB test file download (and 2 GB), with a checksum to prove it arrived
Exact-size files of random bytes, streamed on demand and identical on every request, so each one has a published SHA-256. Use them for upload limits, timeouts, progress bars and storage tests. Free, no sign-up.
Download
Sizes use binary units: 1 GB here is 1,073,741,824 bytes.
| File | Exact size | SHA-256 |
|---|---|---|
| 500 MB | 524,288,000 bytes | c6a0abab76b35ae4b71cb37e37ff6bf619e3518decf9c8f8c6ed42bbb140a59b |
| 1 GB | 1,073,741,824 bytes | ad9739061246f279a54cc65d00d1b7d4af48f8b29dc3b428b4fd42caf17c6df2 |
| 2 GB | 2,147,483,648 bytes | 1107983aeeb4314f6a98a9054c3a7b915cb3793c4043e0f95e8930f11fcc0b32 |
From a terminal, with a check that the file is complete:
curl -fL -o test-1gb.bin "https://gen.hexaqa.com/gen?type=bin&size=1gb"
echo "ad9739061246f279a54cc65d00d1b7d4af48f8b29dc3b428b4fd42caf17c6df2 test-1gb.bin" | sha256sum -c -
On Windows PowerShell, use curl.exe with the same arguments, then
Get-FileHash test-1gb.bin -Algorithm SHA256.
A short download fails loudly. Every response carries its exact Content-Length, so if a transfer is cut off, curl exits with an error and a browser marks the download as failed, instead of saving a shorter file that looks complete.
Any other size
Change size= to anything up to 2 GB.
Units
kb, mb and gb are binary (1,024 based).
A bare number is exact bytes: size=1000000000 is one billion.
A different file
Add &seed=2 (or any number) for different bytes of
the same size. The same seed always gives the same file.
Up to 250 MB, stored
The size ladder holds stored files from 0 bytes to 250 MB. They support HTTP Range requests, so use them to test resumable downloads.
What is inside
Files over 1 MB are slices of a stored 250 MB block of pseudo-random bytes, repeated end to end for larger sizes, starting at a point chosen by the seed. The repeats are 250 MB apart, far beyond the 32 KB window that gzip and ZIP use, so neither can compress the file. A compressor with a very long window, such as zstd in its long mode, can find the repeat, so do not use these to benchmark compression ratios.
What to test with it
Upload limits
Proxies, frameworks and CDNs each have their own cap, and the first one hit decides the error. Large file upload testing lists the defaults.
Timeouts
A slow connection turns a fine 1 GB upload into one that outlives a load balancer's idle timeout. Test on a throttled network, not just the office line.
Progress and cancel
The progress bar should move smoothly, reach 100% only when the server confirms, and cancelling should stop the transfer, not just hide it.
Download speed
For measuring a connection rather than testing an app, see download speed test files.
Questions
Where can I download a 1 GB test file?
From gen.hexaqa.com/gen?type=bin&size=1gb: exactly 1,073,741,824 bytes of random data, with its SHA-256 published above.
Is 1 GB 1,000,000,000 bytes or 1,073,741,824?
Here it is 1,073,741,824 (a gibibyte). For one billion bytes, use size=1000000000.
Can I resume an interrupted download?
Not for generated files. The stored files up to 250 MB support range requests.
Why random data rather than zeros?
Zeros compress and deduplicate to almost nothing, which makes transfers and storage look better than they are.
Can I get a file larger than 2 GB?
Not as one download. See 10 GB test files for making one locally.
Keep going
Large file upload testing 10 GB test file → Generator →
More from Learning
Guides and references for test data, file handling and AI evals. All free, no sign-up. See the full hub.