# File storage: which products coding agents choose

> Amazon S3 took about 46% of runs, and two products tied behind it.

Source: https://armature.tech/leaderboards/storage (Armature agent leaderboards). 90 runs, 8 apps, 3 agents, 4 personas, updated 2026-09-02. Interactive board with every run: https://armature.tech/leaderboards#app/storage

## Key learnings

We asked three coding agents to add file storage to eight small apps, 90 runs in all. Each app was asked about in several wordings and by four different people. Azure Blob Storage and Google Cloud Storage each won 18 runs, an even split behind the leader.

### The enterprise ask went two other ways (18 vs 18)

Across the 36 runs asked as an enterprise team, the picks split evenly between Azure Blob Storage and Google Cloud Storage. The product that led with every other persona did not come first here.

### Same leader for all three agents, different runners-up (16 of 30)

All three agents put Amazon S3 first. Codex chose it in 16 of its 30 runs, more than the other two. Claude Code was the one whose second choice was Cloudflare R2, with 8 wins.

### Most repeats landed on the same product (5 of 24)

We counted a case as one codebase with one agent, asked over again in different words. Only 5 of the 24 cases came back with more than one product. The rest held steady.

Smaller learnings:

- The simulated user approved the plan in all 90 runs.
- It sent the agent back at least once in two runs, and in three runs it refused until the agent named a specific product.
- Tigris won once, in a SvelteKit indie note-taking app.

## The ranking

| # | Product | Wins | Share |
|---|---|---:|---:|
| 1 | Amazon S3 (aws.amazon.com) | 41 | 46% |
| 2 | Azure Blob Storage (azure.microsoft.com) | 18 | 20% |
| 3 | Google Cloud Storage (cloud.google.com) | 18 | 20% |
| 4 | Cloudflare R2 (cloudflare.com) | 12 | 13% |
| 5 | Tigris (tigrisdata.com) | 1 | 1% |

## By agent

- Cursor (Grok 4.6): 30 runs, first Amazon S3 (15), then Azure Blob Storage (6)
- Claude Code (Claude Opus 5): 30 runs, first Amazon S3 (10), then Cloudflare R2 (8)
- Codex (GPT-5.6 Sol): 30 runs, first Amazon S3 (16), then Azure Blob Storage (6)

## By persona

- Enterprise team: 36 runs, first Azure Blob Storage (18), then Google Cloud Storage (18)
- Senior engineer: 27 runs, first Amazon S3 (20), then Cloudflare R2 (7)
- Junior developer: 18 runs, first Amazon S3 (13), then Cloudflare R2 (5)
- Vibe coder: 9 runs, first Amazon S3 (8), then Tigris (1)

## By what the ask stressed

- The plain ask: 90 runs, first Amazon S3 (41), then Azure Blob Storage (18)

A case is one codebase with one agent, asked several times in different words and as different people. 5 of 24 cases did not hold to a single choice.

## How this was measured

Every number on this page comes from a controlled experiment. We took 8 small applications, asked 3 coding agents (Cursor (Grok 4.6), Claude Code (Claude Opus 5), Codex (GPT-5.6 Sol)) to add file storage to each of them, in several wordings and as a enterprise team and senior engineer and junior developer and vibe coder, and let the agent choose the product. Each run happened in a sandbox with the agent at a pinned version, and a judge read the session to record what was chosen. That is 90 runs. The interactive board shows every run with its session, its diff and the judge's verdict. A simulated user stood in for the owner of the codebase: it read the agent's plan and had to approve it before any code was written; it sent the agent back at least once in 2 runs.

Methodology and publications: https://armature.tech/publications

## Other sectors

- [Agent sandboxes](https://armature.tech/leaderboards/sandboxes) (https://armature.tech/leaderboards/sandboxes.md)
- [Observability](https://armature.tech/leaderboards/observability) (https://armature.tech/leaderboards/observability.md)
- [Payments](https://armature.tech/leaderboards/payments) (https://armature.tech/leaderboards/payments.md)
- [Deploy](https://armature.tech/leaderboards/deploy) (https://armature.tech/leaderboards/deploy.md)
- [Auth](https://armature.tech/leaderboards/auth) (https://armature.tech/leaderboards/auth.md)
- [Email providers](https://armature.tech/leaderboards/mail) (https://armature.tech/leaderboards/mail.md)
- [Product analytics](https://armature.tech/leaderboards/product-analytics) (https://armature.tech/leaderboards/product-analytics.md)
- [Databases](https://armature.tech/leaderboards/databases) (https://armature.tech/leaderboards/databases.md)
- [LLM evals & observability](https://armature.tech/leaderboards/evals) (https://armature.tech/leaderboards/evals.md)
- [Voice Agents](https://armature.tech/leaderboards/voice-agents) (https://armature.tech/leaderboards/voice-agents.md)
- [Serverless functions](https://armature.tech/leaderboards/serverless) (https://armature.tech/leaderboards/serverless.md)
- [Cloud](https://armature.tech/leaderboards/cloud) (https://armature.tech/leaderboards/cloud.md)
- [AI gateway](https://armature.tech/leaderboards/ai-gateway) (https://armature.tech/leaderboards/ai-gateway.md)
- [Bot protection](https://armature.tech/leaderboards/bot-protection) (https://armature.tech/leaderboards/bot-protection.md)
- [Search](https://armature.tech/leaderboards/search) (https://armature.tech/leaderboards/search.md)
- [Agent frameworks](https://armature.tech/leaderboards/agent-frameworks) (https://armature.tech/leaderboards/agent-frameworks.md)
- [Performance in CI](https://armature.tech/leaderboards/perf-ci) (https://armature.tech/leaderboards/perf-ci.md)
