Migrating to R2 a Few Objects at a Time
Cloudflare's Super Slurper has handled thousands of one-shot migrations to R2 since its launch earlier in 2023. But a full data transfer isn't always the right move. You might want to avoid a large, upfront AWS egress bill, or you might have legacy data that will never be touched and simply isn't worth moving.
For those cases, Cloudflare has announced the open beta of Sippy, an incremental migration service for R2 buckets. Sippy copies objects from S3 to R2 on demand, as they are requested, eliminating the need for a bulk migration and the associated egress fees. Instead of planning a migration window, you can simply point your application at R2 and let the data follow.
How Sippy works
Sippy is built into your R2 bucket and leverages the request flow of your application to avoid extra migration-specific egress charges. When a client requests an object via Workers, the S3 API, or a public bucket, R2 first checks its own storage.
If the object exists locally, it is served as usual. If not, R2 fetches the object from your S3 bucket, serves it to the client, and copies it into the R2 bucket in the same transaction. For very large objects, the copy may require multiple requests. After the object is stored in R2, all subsequent requests for it are served locally, and you immediately stop paying egress fees for that object.
Getting started with Sippy
To begin an incremental migration, you need an R2 bucket. If you don't have one, you can create it from the Cloudflare dashboard by selecting R2, then Create bucket, entering a name, and confirming. The general bucket creation documentation covers other methods.
During the beta, Sippy is enabled per bucket via the API. You can enable it with a cURL request, after which requests to your bucket will automatically pull missing objects from the configured S3 source. Full setup details are in the Sippy documentation.
Finishing the job
Sippy is designed for long-running, on-demand migration, not necessarily as a permanent solution. When you're ready to complete the transition, you can pair it with Super Slurper to move over any remaining objects that were never requested during the incremental phase. This lets you handle the bulk of your data on your own schedule and then close the gap with a final bulk sync.
Cloudflare plans to extend Sippy with dashboard configuration and migration analytics showing progress and egress savings. For now, the open beta covers S3, with support for additional providers planned. Feedback is being collected through the Cloudflare Developers Discord community.



