{"asOf":"2026-10-28","storesIpAddresses":false,"matched":{"id":"aws-s3-to-cloudflare-r2","from":"s3","to":"r2","jtbd":"object-storage","wireCompatibility":"drop_in_base_url","estimatedMigrationMinutes":3,"oldPackages":["@aws-sdk/client-s3"],"newInstallCmd":"npm install @aws-sdk/client-s3","envVarMapping":{"AWS_ACCESS_KEY_ID":"R2_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY":"R2_SECRET_ACCESS_KEY"},"codeDiffSnippet":"const s3 = new S3Client({ region: \"auto\", endpoint: `https://${process.env.CF_ACCOUNT_ID}.r2.cloudflarestorage.com`, credentials: { accessKeyId: process.env.R2_ACCESS_KEY_ID!, secretAccessKey: process.env.R2_SECRET_ACCESS_KEY! } });","day2Gotchas":["Never npm install r2 (deprecated 2017 HTTP wrapper); use @aws-sdk/client-s3 with R2 endpoint for $0 egress."]},"cite":"Agent Provider Depot 5-Minute Swap (s3 -> r2, as of 2026-10-28). https://getagentdepot.com/api/swap?from=s3&to=r2"}