In hindsight, you may have been asking about Service Environments where you actually have a dev.worker.subdomain.workers.dev - in that case, you might just utilise the above TOML under the environments keys in your wrangler.toml.
Haven’t used them personally so I can’t guarantee that’ll be supported.
I understood the preview thing so that I can have one bucket for “production” and one for the preview.
But I’m looking for a way to have a local bucket when developing -local, a second one when publishing to the dev environment, and a third one when publishing to the live environment.
Or the ‘legacy’ environments which published it as an entirely separate Worker?
Service Environments are currently disabled whilst they’re reworked so I’ll assume you have a [env.dev] key within your wrangler.toml and then deploy it using wrangler publish --env dev.
You should be able to declare your r2_buckets keys under the [env.dev] key as r2_buckets is not inherited.