Cara Menggunakan Cloudflare R2: Panduan Lengkap untuk Pemula

Cloudflare R2 Object Storage dengan tombol Create bucket untuk membuat bucket penyimpanan baru.
Cloudflare R2 adalah layanan object storage tangguh yang dirancang untuk menyimpan berbagai file di internet—mulai dari gambar produk, video, dokumen PDF, file *backup*, aset website, hingga file unggahan pengguna.
Secara konsep, R2 sangat mirip dan kompatibel penuh dengan API Amazon S3. Fleksibilitas ini memungkinkannya terintegrasi secara mulus dengan berbagai aplikasi dan tools pengembangan modern yang mungkin sudah Anda gunakan saat ini.
Keunggulan Utama: Nilai jual terbesar dari Cloudflare R2 adalah biaya transfer data keluar (egress) yang sepenuhnya gratis. Pelajari lebih lanjut di Dokumentasi Cloudflare R2 Pricing.
Memahami Konsep Dasar Cloudflare R2
Sebelum melangkah lebih jauh ke proses konfigurasi, penting untuk memahami beberapa terminologi dasar berikut agar pengelolaan data Anda menjadi lebih terarah:
- Bucket: Wadah atau kontainer utama untuk menyimpan file. Anda bisa membayangkannya sebagai "folder induk" di penyimpanan *cloud*.
-
Object: File individual yang Anda simpan di dalam bucket. Contohnya:
foto-produk.jpg,panduan.pdf, ataubackup.zip. -
Object Key: Nama lengkap atau jalur (path) file di dalam bucket. Contohnya:
images/logo.png.
Perlu diketahui bahwa R2 menggunakan struktur penyimpanan datar (flat structure). Namun, Anda tetap bisa menciptakan ilusi hierarki folder dengan menambahkan awalan (prefix) pada nama file, seperti produk/sepatu/merah.jpg.
Secara *default*, seluruh bucket R2 bersifat privat. File yang diunggah tidak akan bisa diakses publik secara langsung, kecuali Anda secara sengaja mengaktifkan akses publik untuk kebutuhan website atau pembagian *link*.
Persiapan Sebelum Menggunakan R2
Pastikan Anda telah menyiapkan beberapa prasyarat berikut sebelum memulai:
- Akun Cloudflare yang aktif.
- Metode pembayaran yang tertaut (diperlukan untuk verifikasi Cloudflare, meskipun Anda hanya menggunakan *tier* gratis).
- Domain yang dikelola melalui DNS Cloudflare (jika Anda berencana menggunakan custom domain).
- Beberapa file sampel (gambar JPG, dokumen PDF, atau ZIP) untuk pengujian.
Sebagai informasi, Cloudflare R2 menyediakan kuota gratis bulanan yang sangat memadai: 10 GB penyimpanan standar, 1 juta operasi Class A (menulis/membuat), dan 10 juta operasi Class B (membaca). Mengingat egress digratiskan, Anda hanya perlu memantau penggunaan storage dan jumlah operasi agar biaya tetap dalam kendali.
Langkah 1: Membuat Bucket Pertama Anda
- Masuk ke Cloudflare Dashboard akun Anda.
- Pada bilah navigasi samping, pilih menu R2 Object Storage.
- Klik tombol Create bucket.
- Masukkan nama bucket yang deskriptif dan sesuai kebutuhan Anda.
- Pilih pengaturan lokasi (Location Hint) jika diperlukan, atau biarkan otomatis.
- Klik tombol Create bucket untuk menyelesaikan.
Rekomendasi Penamaan Bucket:
website-assets— Ideal untuk gambar statis, CSS, JavaScript, dan aset web.katalog-produk— Khusus untuk menyimpan foto atau video media produk.backup-dokumen-internal— Untuk mengamankan file backup perusahaan.
Praktik Terbaik: Selalu pisahkan bucket berdasarkan tingkat privasinya. Misalnya, aset gambar diletakkan di bucket publik, sementara backup database wajib ditempatkan pada bucket privat terpisah.
Langkah 2: Mengunggah File ke Bucket
- Buka bucket yang baru saja Anda buat.
- Klik tombol Upload atau Upload files.
- Pilih file dari direktori komputer Anda.
- Tentukan nama file atau sesuaikan object key jika ingin mengatur struktur "folder".
- Tunggu hingga indikator unggahan selesai.
Terapkan struktur object key yang rapi sejak awal agar manajemen file tetap mudah seiring bertambahnya data:
images/logo.png
images/banner/homepage.jpg
documents/panduan-pengguna.pdf
videos/tutorial-01.mp4
Hindari penamaan file generik seperti gambar1.jpg atau filebaru.pdf. Nama file yang deskriptif akan sangat menghemat waktu Anda saat melakukan pencarian di masa mendatang.
Langkah 3: Mengaktifkan Akses Publik (Opsional)
Jika R2 digunakan sebagai media penyimpanan aset website atau file unduhan publik, Anda perlu mengekspos bucket tersebut. Cloudflare memberikan dua metode: menggunakan URL development bawaan atau menggunakan Custom Domain.
Opsi A: Menggunakan Public Development URL (r2.dev)
- Di dalam bucket Anda, navigasikan ke *tab* Settings.
- Gulir ke bawah hingga menemukan bagian Public Development URL.
- Klik Enable.
- Setujui konfirmasi pengaktifan.
- Salin URL publik berakhiran
.r2.devyang disediakan.
Catatan: URL r2.dev memiliki *rate-limit* dan ditujukan untuk tahap pengujian (staging). Untuk tahap produksi (live), sangat disarankan menggunakan Opsi B.
Opsi B: Menggunakan Custom Domain (Direkomendasikan)
Menggunakan domain sendiri tidak hanya terlihat profesional, tetapi juga memungkinkan Anda memanfaatkan fitur *cache* dan keamanan Cloudflare sepenuhnya. Contoh hasil akhir: https://cdn.domainanda.com/images/logo.png.
- Pastikan domain utama Anda sudah terhubung di Cloudflare.
- Buka menu R2 Object Storage dan pilih bucket Anda.
- Masuk ke *tab* Settings.
- Pada bagian Custom Domains, klik Connect Domain (atau Add).
- Ketikkan subdomain yang diinginkan, contoh:
cdn.domainanda.com. - Cloudflare akan menampilkan tinjauan DNS record. Lanjutkan dengan klik Connect Domain.
Setelah propagasi DNS selesai, file Anda sudah bisa diakses dengan subdomain berkecepatan tinggi.
→ Baca Panduan Resmi Public Bucket Cloudflare
Langkah 4: Membuat Kredensial S3 API
Integrasi R2 dengan CMS atau framework modern (seperti WordPress, Laravel, Node.js, atau Python) membutuhkan akses API. Berikut cara membuatnya:
- Kembali ke halaman utama R2 Object Storage.
- Di menu sebelah kanan atas, klik Manage R2 API Tokens.
- Klik Create API Token.
- Berikan nama token dan tentukan hak akses (Permissions) yang sesuai.
- Sangat disarankan: Batasi akses token (Specify bucket) hanya ke bucket tertentu saja.
- Simpan Access Key ID, Secret Access Key, dan Endpoint URL S3 di tempat yang aman.
Pilihan Hak Akses Umum:
- Object Read Only: Aplikasi hanya bisa membaca/menampilkan file (Aman untuk *frontend* tertentu).
- Object Read & Write: Aplikasi dapat membaca, mengunggah, dan menghapus file (Ideal untuk CMS).
Peringatan Keamanan: Jangan pernah memublikasikan Secret Access Key di kode frontend JavaScript, repositori publik (seperti GitHub), atau screenshot. Kunci ini harus selalu disimpan sebagai Environment Variable (.env) di sisi *server*.
Langkah 5: Integrasi R2 dengan Cloudflare Workers
Salah satu kehebatan ekosistem Cloudflare adalah integrasi native antara R2 dan Workers menggunakan metode Binding. Ini memungkinkan Worker berinteraksi dengan R2 secara langsung, super cepat, dan tanpa perlu mengelola kredensial S3 API.
Contoh konfigurasi binding pada file wrangler.jsonc atau wrangler.toml:
{
"r2_buckets": [
{
"binding": "BUCKET_ASET",
"bucket_name": "website-assets"
}
]
}
Berikut adalah contoh implementasi pada kode Worker (JavaScript/TypeScript) untuk mengambil dan merender file dari R2:
export default {
async fetch(request, env) {
// Memanggil object berdasarkan key
const object = await env.BUCKET_ASET.get("images/logo.png");
// Menangani kondisi jika file tidak ditemukan
if (object === null) {
return new Response("File tidak ditemukan", { status: 404 });
}
// Mengembalikan file langsung ke browser pengunjung
const headers = new Headers();
object.writeHttpMetadata(headers);
headers.set("etag", object.httpEtag);
return new Response(object.body, { headers });
}
};
Praktik Terbaik & Keamanan Jangka Panjang
- Prinsip Least Privilege: Gunakan API token dengan izin seminimal mungkin. Jika aplikasi hanya butuh membaca, jangan berikan akses menulis (Write).
- Isolasi Data: Pisahkan bucket untuk aset publik (gambar web) dan data konfidensial (invoice pelanggan, backup).
- Custom Domain untuk Produksi: Selalu rutinkan lalu lintas produksi melalui custom domain agar diuntungkan oleh CDN Cloudflare.
- Cloudflare Access (Zero Trust): Untuk bucket internal perusahaan, Anda bisa mengintegrasikan Cloudflare Access agar file hanya bisa dibuka oleh *email* atau IP tertentu.
- Pantau Metrik Secara Berkala: Cek menu Metrics di dashboard R2 secara berkala untuk memantau lonjakan request yang tidak wajar.
Penutup
Cloudflare R2 menghadirkan revolusi dalam dunia cloud storage dengan menghapus biaya egress yang selama ini menjadi beban di layanan tradisional seperti AWS S3. Baik Anda membangun portofolio kecil, menjalankan e-commerce, hingga mendesain arsitektur aplikasi skala *enterprise*, R2 adalah solusi yang tangguh, cepat, dan ekonomis.
Dengan menerapkan manajemen bucket yang rapi, pengamanan API yang ketat, dan integrasi bersama Cloudflare Workers, Anda telah membangun fondasi infrastruktur digital yang modern dan berkinerja tinggi. Selamat bereksplorasi!


