Setelah beberapa lama saya menggunakan bucket Cloudflare R2 hari ini saya memutuskan untuk berhenti berlangganan.
Saya menggunakan Cloudflare R2 ini, untuk membackup data-data di server.
Proses penghapusan bucket di Cloudflare R2 ternyata tidak bisa langsung klik tombol delete begitu saja.
Selama ada data di dalam bucket Cloudflare R2 maka bucket tersebut tidak bisa dihapus.
Hapus manual melalui website Cloudflare sendiri pun tidak bisa secara keseluruhan.
Apalagi kalau kamu memiliki file yang mungkin berkisar ratusan atau bahkan ribuan file, akan sangat lama jika manual.
Solusinya kamu bisa menggunakan aplikasi seperti Rclone untuk menghapus semua object di bucket Cloudflare R2.
Daftar Isi
Cara Instal Rclone Di Windows dan MacOS
Kamu bisa pergi ke halaman download Rclone terlebih dahulu untuk mendapatkan instalasi file.
Ada banyak sistem operasi yang didukung tidak hanya MacOS dan Windows saja.
Ada juga Rclone untuk sistem operasi Linux, FreeBSD, OpenBSD, dan MacOS (ARM64).
Setelah file berhasil kamu unduh, lakukan instalasi Rclone pada komputer kamu.
Jika kamu menggunakan MacOS, saya menyarankan proses instalasi melalui homebrew agar lebih mudah dan cepat.
Jalankan perintah berikut ini untuk instalasi Rclone di MacOS via terminal:
brew install rclone
Setelah proses instalasinya berhasil kamu lakukan, kini saatnya proses setup rclone agar terhubung dengan Cloudflare R2.
Cara Menghubungkan Cloudflare R2 Dengan Rclone
Cloudflare sendiri dalam dokumentasi produk Cloudflare R2 memberikan panduan yang cukup lengkap.
Jika kamu bingung dengan dokumentasi yang disediakan oleh Cloudflare, kamu bisa membaca panduan ini sampai tuntas.
Sekarang, jalankan program Rclone melalui terminal untuk melakukan konfigurasi Cloudflare R2:
rclone config
Ikuti perintah dan jawaban yang saya buat melalui tulisan berikut:
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Enter name for new remote.
name> r2
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
1 / 1Fichier
\ (fichier)
2 / Akamai NetStorage
\ (netstorage)
3 / Alias for an existing remote
\ (alias)
4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Minio, Netease, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others
\ (s3)
5 / Backblaze B2
\ (b2)
6 / Better checksums for other remotes
\ (hasher)
7 / Box
\ (box)
8 / Cache a remote
\ (cache)
9 / Citrix Sharefile
\ (sharefile)
10 / Combine several remotes into one
\ (combine)
11 / Compress a remote
\ (compress)
12 / Dropbox
\ (dropbox)
13 / Encrypt/Decrypt a remote
\ (crypt)
14 / Enterprise File Fabric
\ (filefabric)
15 / FTP
\ (ftp)
16 / Google Cloud Storage (this is not Google Drive)
\ (google cloud storage)
17 / Google Drive
\ (drive)
18 / Google Photos
\ (google photos)
19 / HTTP
\ (http)
20 / Hadoop distributed file system
\ (hdfs)
21 / HiDrive
\ (hidrive)
22 / ImageKit.io
\ (imagekit)
23 / In memory object storage system.
\ (memory)
24 / Internet Archive
\ (internetarchive)
25 / Jottacloud
\ (jottacloud)
26 / Koofr, Digi Storage and other Koofr-compatible storage providers
\ (koofr)
27 / Linkbox
\ (linkbox)
28 / Local Disk
\ (local)
29 / Mail.ru Cloud
\ (mailru)
30 / Mega
\ (mega)
31 / Microsoft Azure Blob Storage
\ (azureblob)
32 / Microsoft Azure Files
\ (azurefiles)
33 / Microsoft OneDrive
\ (onedrive)
34 / OpenDrive
\ (opendrive)
35 / OpenStack Swift (Rackspace Cloud Files, Blomp Cloud Storage, Memset Memstore, OVH)
\ (swift)
36 / Oracle Cloud Infrastructure Object Storage
\ (oracleobjectstorage)
37 / Pcloud
\ (pcloud)
38 / PikPak
\ (pikpak)
39 / Proton Drive
\ (protondrive)
40 / Put.io
\ (putio)
41 / QingCloud Object Storage
\ (qingstor)
42 / Quatrix by Maytech
\ (quatrix)
43 / SMB / CIFS
\ (smb)
44 / SSH/SFTP
\ (sftp)
45 / Sia Decentralized Cloud
\ (sia)
46 / Storj Decentralized Cloud Storage
\ (storj)
47 / Sugarsync
\ (sugarsync)
48 / Transparently chunk/split large files
\ (chunker)
49 / Uloz.to
\ (ulozto)
50 / Union merges the contents of several upstream fs
\ (union)
51 / Uptobox
\ (uptobox)
52 / WebDAV
\ (webdav)
53 / Yandex Disk
\ (yandex)
54 / Zoho
\ (zoho)
55 / premiumize.me
\ (premiumizeme)
56 / seafile
\ (seafile)
Storage> 4
Option provider.
Choose your S3 provider.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
1 / Amazon Web Services (AWS) S3
\ (AWS)
2 / Alibaba Cloud Object Storage System (OSS) formerly Aliyun
\ (Alibaba)
3 / Arvan Cloud Object Storage (AOS)
\ (ArvanCloud)
4 / Ceph Object Storage
\ (Ceph)
5 / China Mobile Ecloud Elastic Object Storage (EOS)
\ (ChinaMobile)
6 / Cloudflare R2 Storage
\ (Cloudflare)
7 / DigitalOcean Spaces
\ (DigitalOcean)
8 / Dreamhost DreamObjects
\ (Dreamhost)
9 / Google Cloud Storage
\ (GCS)
10 / Huawei Object Storage Service
\ (HuaweiOBS)
11 / IBM COS S3
\ (IBMCOS)
12 / IDrive e2
\ (IDrive)
13 / IONOS Cloud
\ (IONOS)
14 / Seagate Lyve Cloud
\ (LyveCloud)
15 / Leviia Object Storage
\ (Leviia)
16 / Liara Object Storage
\ (Liara)
17 / Linode Object Storage
\ (Linode)
18 / Magalu Object Storage
\ (Magalu)
19 / Minio Object Storage
\ (Minio)
20 / Netease Object Storage (NOS)
\ (Netease)
21 / Petabox Object Storage
\ (Petabox)
22 / RackCorp Object Storage
\ (RackCorp)
23 / Rclone S3 Server
\ (Rclone)
24 / Scaleway Object Storage
\ (Scaleway)
25 / SeaweedFS S3
\ (SeaweedFS)
26 / StackPath Object Storage
\ (StackPath)
27 / Storj (S3 Compatible Gateway)
\ (Storj)
28 / Synology C2 Object Storage
\ (Synology)
29 / Tencent Cloud Object Storage (COS)
\ (TencentCOS)
30 / Wasabi Object Storage
\ (Wasabi)
31 / Qiniu Object Storage (Kodo)
\ (Qiniu)
32 / Any other S3 compatible provider
\ (Other)
provider> 6
Option env_auth.
Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
Only applies if access_key_id and secret_access_key is blank.
Choose a number from below, or type in your own boolean value (true or false).
Press Enter for the default (false).
1 / Enter AWS credentials in the next step.
\ (false)
2 / Get AWS credentials from the environment (env vars or IAM).
\ (true)
env_auth> 1
Option access_key_id.
AWS Access Key ID.
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
access_key_id> 123456 (isi dengan access key kamu)
Option secret_access_key.
AWS Secret Access Key (password).
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
secret_access_key> 123456 (isi dengan secret access key kamu)
Option region.
Region to connect to.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
1 / R2 buckets are automatically distributed across Cloudflare's data centers for low latency.
\ (auto)
region>
Option endpoint.
Endpoint for S3 API.
Required when using an S3 clone.
Enter a value. Press Enter to leave empty.
endpoint> https://12345.r2.cloudflarestorage.com (isi dengan endpoint Cloudflare R2 milik kamu)
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Configuration complete.
Options:
- type: s3
- provider: Cloudflare
- access_key_id: 123456
- secret_access_key: 123456
- endpoint: https://12345.r2.cloudflarestorage.com
Keep this "r2" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
r2 s3
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
Tahap selanjutnya yaitu menjalakan perintah penghapusan objek di dalam bucket Cloudflare R2.
Cara Menghapus Objek Di Bucket Cloudflare R2
Kita akan menggunakan perintah Rclone purge untuk menghapus semua objek di bucket Cloudflare R2.
Pastikan file backup yang akan dihapus, sudah kamu pindahkan/transfer ke tempat lain ya.
Atau kalau memang sudah tidak dibutuhkan dihapus tidak jadi masalah.
Tadi karena kita sudah membuat shortcut name yaitu r2, kita bisa jalankan perintah ini untuk penghapusan objek:
rclone purge r2:{{nama_bucket}}
Saya coba tambahkan konteks ya untuk perintah di atas, sebagai contoh nama bucket Cloudflare R2 saya adalah “backup-server” (tidak pakai tanda kutip).
Perintah yang nantinya kamu harus jalankan di rclone adalah sebagai berikut:
rclone purge r2:backup-server
Setelah perintah di atas, kamu eksekusi tinggal, penghapusan bucket di website Cloudflare.
Ini sudah mudah, button delete bucket yang tadinya tidak bisa diklik karena masih ada data di dalam bucket.
Sekarang, tinggal masukkan nama bucket saja sebagai konfirmasi penghapusan bucket Cloudflare R2.
Semoga informasi ini bermanfaat, bantu share tulisan ini ke sesama pengguna Cloudflare R2 ya.