Short answer: for a game that stores a small number of private tenant snapshots, choose the provider that makes deletion explicit and recovery testable. R2 and Backblaze B2 are sensible cost-conscious candidates, while S3 is a useful baseline when its surrounding controls already match your platform. A plain REST option such as Infrai fits a team that wants private bucket operations behind one API key, but it is the wrong choice for public image hosting, immutable records, or browser-direct uploads that require self-service CORS configuration.
The expensive mistake is usually not the object count. It is an unclear lifecycle. A tenant leaves, an operator deletes the wrong snapshot, or a retry creates two records with the same logical name. In a multiplayer game, those failures are visible during an incident, when nobody wants to discover that retention was a paragraph in a ticket rather than a rule in code.
What must be true before storage is cheap
Start with the data contract, not a provider comparison.…