~/VibeHandbook
PDF Gratis

Cloudflare

developers.cloudflare.com

R2

Apa itu ini

Bayangkan sebuah gudang online yang sangat besar tempat kamu menaruh kotak-kotak berisi file dan mengambilnya lagi nanti. R2 adalah object storage (penyimpanan objek) milik Cloudflare — gudang itu — tempat menaruh file: gambar, video, backup, unggahan pengguna, hasil build. R2 menggunakan (Application Programming Interface — kumpulan perintah yang dipakai alat untuk berkomunikasi dengannya) yang sama dengan Amazon S3, jadi sebagian besar alat dan SDK (Software Development Kit — pustaka kode siap pakai) untuk S3 bisa langsung dipakai tanpa perubahan. Perbedaan utamanya ada pada harga: R2 mengenakan biaya untuk penyimpanan dan operasi, tetapi tanpa biaya egress (tanpa biaya untuk data yang keluar dari gudang), sehingga menyajikan data keluar menjadi gratis.

Kelebihan

  • Tanpa biaya egress — penghematan besar untuk aplikasi yang berat media atau berat unduhan.
  • API yang kompatibel dengan S3, jadi tooling dan pustaka yang sudah ada langsung berfungsi.
  • Bisa di-bind langsung ke Worker untuk baca dan tulis tanpa kredensial di dalam kode.
  • Bisa berada di belakang CDN (Content Delivery Network — jaringan server di seluruh dunia yang menyimpan salinan file dekat dengan setiap pengunjung) milik Cloudflare untuk pengiriman yang cepat dan ter-cache.
  • Bisa berkembang untuk objek besar dan bucket besar tanpa perlu provisioning.

Trade-off

  • Ini object storage, bukan filesystem atau — tidak bisa melakukan query di dalam file.
  • Operasi (PUT/GET/LIST) dikenakan biaya, jadi pola akses yang sering-sering akan bertambah biayanya.
  • Konsistensi kuat dan fitur-fiturnya berbeda dalam beberapa detail dari S3; periksa kasus-kasus khususnya.
  • Untuk nilai-nilai kecil yang sering berubah, KV (key-value store, seperti kamus raksasa) atau D1 (database ) lebih cocok.

Kapan menggunakannya

Gunakan R2 untuk unggahan pengguna, file yang dihasilkan, aset statis besar, ekspor data, dan backup — terutama di mana pun biaya bandwidth di S3 akan terasa menyakitkan.

Cocok untuk vibe coding

R2 cocok dengan pembangunan yang diarahkan AI karena binding menghilangkan ritual kredensial yang biasa — langsung menulis ke env.BUCKET. Beri tahu agent apakah file bersifat publik (disajikan lewat Worker atau kustom) atau privat (akses bertanda tangan/signed), supaya ia menyusun pengiriman dengan benar. Contoh berikut mem-bind sebuah bucket dan mengunggah file dari (Command Line Interface — antarmuka baris perintah).

# wrangler.toml
[[r2_buckets]]
binding = "BUCKET"
bucket_name = "uploads"
npx wrangler r2 bucket create uploads
npx wrangler r2 object put uploads/logo.png --file ./logo.png