![]() |
|
Getting Started with Cloudflare R2 - Printable Version +- Forums (https://bb.nurfachmi.com) +-- Forum: My Category (https://bb.nurfachmi.com/forum-1.html) +--- Forum: My Forum (https://bb.nurfachmi.com/forum-2.html) +--- Thread: Getting Started with Cloudflare R2 (/thread-11.html) |
Getting Started with Cloudflare R2 - admin - 05-02-2026 Quote:Reza Nurfachmi, January 4, 2025 Cloudflare R2 Storage adalah layanan penyimpanan objek (object storage) yang dirancang sebagai alternatif dari solusi penyimpanan cloud tradisional seperti Amazon S3. R2 menawarkan cara untuk menyimpan data tidak terstruktur dalam jumlah besar, seperti file, gambar, video, atau dokumen, dengan fokus pada efisiensi biaya dan kinerja. Quote: Keunggulan Utama Cloudflare R2
Bagaimana Cloudflare R2 Bekerja? R2 menyimpan data dalam bentuk objek, mirip dengan layanan object storage lainnya. Setiap objek diidentifikasi dengan kunci unik, dan metadata dapat ditambahkan untuk mempermudah pengelolaan data. Dengan integrasi yang mendalam ke dalam jaringan Cloudflare, data yang disimpan di R2 dapat diakses dengan cepat melalui jaringan edge Cloudflare. Jika kamu tertarik untuk mencoba Cloudflare R2, penulis akan menjelaskan langkah-langkah untuk mengintegrasikan R2 ke aplikasimu. ? --- Berikut adalah langkah-langkah untuk mengintegrasikan Cloudflare R2 Storage ke aplikasi kamu, khususnya jika sudah familiar dengan Amazon S3 atau ingin memanfaatkan kompatibilitas S3 API: Langkah 1: Siapkan Bucket di Cloudflare R2 Pertama, login ke akun Cloudflare kamu di Cloudflare Dashboard. Kalau belum punya akun, maka register dahulu. Kedua, akses menu R2 Object Storage dari sidebar. Jika ini adalah pertama kali, seharusnya muncul halaman register R2 seperti ini: ![]() Jika seperti di atas, maka isi dulu formulir yang dibutuhkan. Tenang saja, kamu hanya akan ditagih jika melebihi batas pemakaian gratisannya kok. Lalu bagaimana soal tarif Cloudflare R2 ini? Apa maksudnya Storage, Class A operations dan Class B operations? ![]() Pada versi gratis, storage yang diberikan ialah sampai 10 GB per bulan. Jika lebih, maka akan kena biaya sebesar $0.015 per GB dari kuota berlebihnya. Jika ukuran storage kamu 15 GB, maka akan kena biaya sekitar $0.015 x 5 GB, yakni $0.075 atau setara dengan IDR 1.125 jika kurs di angka IDR 15.000. Class A Operations, pada dasarnya adalah operasi yang cenderung mengubah status data, seperti menulis/upload atau memodifikasi objek, seperti PutObject (mengupload objek), CopyObject (menyalin objek), dan CompleteMultipartUpload (menyelesaikan upload multipart). Adapun Class B Operations adalah operasi yang biasanya membaca status data yang ada tanpa mengubahnya. Contohnya ialah GetObject (mengambil objek) dan HeadObject (memeriksa metadata objek). Baik, kembali lagi ke proses registrasi. Jika sudah berhasil memasukkan kredensial kartu kredit atau debit, maka akan muncul halaman seperti ini: ![]() Selanjutnya adalah membuat Bucket. Apa itu Bucket? Bucket adalah keranjang yang isinya adalah objek-objek yang akan kita upload nanti. Silahkan isi nama bucket-mu. ![]() Jika berhasil, maka halamannya akan beralih seperti ini: ![]() Cobalah upload satu file dulu. Jika berhasil, maka tampilannya sebagai berikut: ![]() Saat ini, R2 kita hanya berlaku seperti flashdisk saja. Hanya bisa menyimpan data, tetapi belum bisa mengakses datanya secara online. Perhatikan pada bagian Public URL Access, di sana tertera Not allowed. Agar objek-objek yang kita upload bisa diakses, maka bagian tersebut harus berubah menjadi Allowed terlebih dahulu. Caranya adalah klik menu Settings, lalu cari bagian Public Access sebagai berikut, kemudian klik tombol Allow Access. ![]() Lalu ikuti arahannya sampai berubah menjadi seperti ini: ![]() Jika berhasil, maka saat masuk ke dalam objeknya, maka akan muncul URL publiknya sebagai berikut: ![]() Sampai sini, maka saatnya lanjut ke langkah berikutnya. --- Langkah 2: Instalasi SDK atau Library Gunakan library yang mendukung Amazon S3 untuk mengintegrasikan aplikasi kita dengan R2. Contoh library populer: PHP: AWS SDK for PHP Node.js: AWS SDK for JavaScript Python: Boto3 Go: Minio Go SDK Etapipaak, sebelum itu kita harus punya token API untuk dapat melakukan operasi menggunakan library di atas. Bagaimana caranya? Begini. Arahkan kembali ke halaman Overview R2 Object Storage, kemudian arahkan seperti gambar di bawah. Pilih Manage API tokens. ![]() Jika masih kosong, maka tampilannya sebagai berikut: ![]() Maka klik tombol Create API token untuk membuat satu. Berikut pengaturan penulis saat membuat token. Token name: token-r2-read-write Permissions: Object Read & Write: Allows the ability to read, write, and list objects in specific buckets. Specify bucket(s): Apply to all buckets in this account (including newly created buckets) TTL: Forever Jika telah berhasil, maka silahkan simpan kredensial yang diberikan, antara lain:
Maka halamannya akan berubah menjadi seperti ini: ![]() Nah, selanjutnya kita akan mulai sedikit ngoding. Pada kali ini, saya contohkan pakai Laravel PHP ya. --- Langkah 3: Contoh Kode Implementasi Silahkan install Laravel fresh atau gunakan projek kamu yang ingin mengemplementasikan R2 ini. Selanjutnya install package S3 PHP Code: composer require league/flysystem-aws-s3-v3 "^3.0" --with-all-dependencies Code: ./composer.json has been updatedOke, selanjutnya adalah tambahkan baris berikut ke file .env kita. Code: R2_ACCESS_KEY_ID=YOUR_ACCESS_KEYLalu cari key FILESYSTEM_DISK dan ubah nilainya menjadi r2 seperti ini: Code: FILESYSTEM_DISK=r2Kira-kira lengkapnya menjadi seperti ini: Code: FILESYSTEM_DISK=r2Beberapa value di atas sudah disensor dengan karakter *. Selanjutnya tambahkan pengaturan disk di filesystem yang ada di config/filesystem.php. PHP Code: <?phpSip, sekarang kita beralih ke MVC-nya. Model, View, dan Controller. Let’s go! --- Langkah 4: Model, View, dan Controller Kita buat ketiganya dalam satu perintah. PHP Code: php artisan make:model Storage -mcr Code: INFO Model [app/Models/Storage.php] created successfully. Dengan perintah di atas, kita membuat model Storage sekaligus migration dan resource controller. --- Untuk migration, kita buat sederhana dulu saja seperti ini: PHP Code: <?phpJalankan migratenya PHP Code: php artisan migrate File migration di atas setara dengan SQL command berikut: PHP Code: create table "storages" (--- Selanjutnya kita modifikasi file controllernya seperti ini: PHP Code: <?phpPada method index, kita sesederhana menampilkan view yang nanti berada di resources/views/upload.blade.php dan isinya berupa form upload saja dengan 2 elemen, yakni element input file dan tombol. Adapun pada method store, hanya berupa usaha untuk upload file ke Cloudflare R2 dan menyimpannya ke dalam model Storage. Jika gagal, maka akan menampilkan errornya dalam fungsi dd. Jika berhasil, maka kembali ke halaman upload lagi. Kita hanya menggunakan dua method itu saja dan silahkan hapus method lainnya karena tidak diperlukan. -- Terakhir, buat file baru dengan nama upload.blade.php dalam folder resources/views dan isinya sesederhana berikut: PHP Code: <!DOCTYPE html>-- Ups, sebelum kita coba di browser, kita harus menambahkan route juga di routes/web.php seperti ini: PHP Code: <?php-- Nah, saatnya pembuktian di browser! --- Langkah 5: Pembuktian! Silahkan jalankan web kita dengan perintah: PHP Code: php artisan serve Code: INFO Server running on [http://127.0.0.1:8000]. Kemudian buka browser dan arahkan ke alamat http://localhost:8000/storage. Seharusnya muncul halaman seperti ini: ![]() Silahkan coba upload satu gambar atau file. Pastikan di bucket kamu sudah bertambah 1 objek baru. Jika tidak, berarti masih ada yang keliru dari langkah-langkah sebelumnya. Silahkan diperiksa kembali. ![]() Nampak ada satu file terupload di folder dengan nama storage dalam bucket nurfachmi-academy tersebut. Nah, demikian deh cara integrasi Cloudflare R2 ke dalam Laravel, sekaligus mengenalkan apa itu Cloudflare R2. Ada pertanyaan? Silahkan tanya di kolom komentar ya! Salam.
|