Sekilas tentang Dropbox dan Dropbox API

dropbox logoTentunya sobat eCampuz sudah tahu Dropbox kan? Tahu atau tidak, mari kita bahas di sini. Dropbox merupakan sebuah perusahaan penyedia File Hosting atau Cloud Storage. Siapapun yang memiliki akun di sini dapat memanfaatkan fitur-fitur penyimpanan data secara online. Seperti Google Drive lah. Dropbox client tersedia dalam versi mobile, desktop ataupun web. Secara resmi perusahaan Dropbox muncul pada tahun 2009. Namun sebenarnya sejak tahun 2007, Drew Houston, pendiri Dropbox sudah mulai menyusun konsep Cloud Storage Dropbox. Lagi-lagi, konsep itu dia temukan saat itu dia masih mahasiswa. Sebelum 2009, Dropbox hanyalah nama branding, di bawah perusahaan Evenflow Inc. Namun sekarang Dropbox sudah berdiri sendiri sebagai sebuah perusahaan.

Dropbox, sebagai layanan penyimpanan data, menyediakan layanan penyimpanan untuk berbagai macam platform. PC, Smartphone (Android, IOS), hingga layanan untuk server, yang memanfaatkan Dropbox API untuk komunikasi datanya. Inilah yang akan kita kulik di artikel ini.

Bagaimana Sih Cara Pakai Dropbox?

Untuk dapat menggunakan Dropbox, kita tinggal memulai membuat akun Dropbox yang ada di halaman utama Dropbox. Setelah membuat akun, kita akan memiliki storage di server Dropbox sana. Untuk kelas gratisan, kita bisa memanfaatkan sebanyak 2 GB ruang secara gratis. Kelas selanjutnya berbayar. Paling murah adalah 9.99 Dollar per bulan.

dropbox sign up
Sign Up Dropbox

Lebih Dekat dengan Dropbox API

API singkatan dari Application Programming Interface. API biasa digunakan untuk menghubungkan satu aplikasi dengan aplikasi lain, atau menghubungkan antar platform. Wujudnya biasanya adalah webservice. Biasanya, aplikasi mobile yang ada di smartphone kita akan melakukan komunikasi dengan server penyedia layanan dengan menggunakan API. Agar API aman, maka API ini memiliki cara otentikasi sendiri. Baik melalui HTTP AUTH dan dirangkap dengan otentikasi masa kini seperti oAuth atau oAuth2.

Dropbox API adalah webservice yang digunakan untuk menghubungkan sebuah perangkat, dengan layanan data Dropbox. Perangkat ini bisa berupa gadget, laptop, PC ataupun server. API ini akan berisi fungsi-fungsi operasional data di Dropbox. Bisa saja berupa upload file, download file, delete file dan operasional data lainnya. API ini bisa diletakkan dalam cron job (event scheduler), agar berjalan setiap waktu tertentu, atau atas trigger tertentu. Dropbox saat ini sudah mencapai Dropbox API versi 2. Dokumentasinya ada di https://www.dropbox.com/developers/documentation/http/documentation.

Membuat Backup File Otomatis, Goal Artikel Ini

Melakukan pencadangan data, atau backup data, merupakan salah satu langkah manajemen risiko yang penting. Pencadangan data level paling rendah adalah mencadangkan di Operating System yang digunakan itu sendiri. Level selanjutnya adalah melakukan pencadangan di lain OS dan lain hardware. Pencadangan level paling tinggi dapat dilakukan hingga lintas benua. Hal ini digunakan untuk mengantisipasi segala macam insiden yang bakal terjadi, dari sekedar human error, hardware rusak, hingga bencana alam (Naudzubillah min dzaliik sih).

Goal artikel ini, kita akan belajar mencadangkan data ke Dropbox. Tim eCampuz membuat contoh untuk pencadangan data server baik SQL maupun file, ke Dropbox. Tentu disesuaikan dengan kapasitas Dropbox yang kita punya dong ya. Untuk contoh nanti tim eCampuz akan menggunakan sembarang file SQL yang terkompresi. Lho, cara mbuat file SQL nya otomatis juga? Iya dong… Gimana caranya? Ada deh, pasti akan disiapkan artikel singkatnya di web blog ini juga.

dropbox api upload
Dropbox Api Upload

Intinya adalah bahwa file yang ada di server kita, akan kita upload ke Dropbox, dengan menggunakan API Dropbox. API itu berbentuk URL, yang dilengkapi dengan beberapa syarat Authentication, dan header lainnya. Kemudian dalam URL tersebut disertakan lokasi sumber file di server, dan lokasi tujuan di dropbox.

Sebenarnya jika di Android atau di PC Desktop, sudah ada program aplikasi untuk menjadi jembatan antara PC / Android dengan server. Namun di server , komunikasi APi ini sudah umum jika dilakukan dengan perintah text mode, ataupun dengan SDK.

Kira-kira struktur URL Dropbox API tersebut adalah seperti berikut :

curl -X POST https://content.dropboxapi.com/2/files/upload \
--header "Authorization: Bearer IniDiisiDenganACCESS_TOKEN" \
--header "Dropbox-API-Arg: {\"path\": \"/Direktori_Target/namafile.jpg\"}" \
--header "Content-Type: application/octet-stream" \
--data-binary @namafile.jpg \
-v

Penjelasan :

  1. Perintah CURL sebenarnya adalah sebuah browser / HTTP client yang digunakan untuk melakukan akses ke HTTP server.
  2. Header Authorization ini dapat menggunakan Bearer, ataupun OAuth2. Akses token bisa didapatkan di halaman Dropbox API kita, akan kita bahas satu-satu cara mendapatkannya. Akses token ini harus dijaga baik-baik.
  3. Header Dropbox-API-ARG diisi dengan lokasi tujuan pada server Dropbox yang kita punya.
  4. Tipe konten yang dikirim ke server Dropbox API adalah application/octet-stream
  5. –data-binary, dapat juga diganti dengan -F, yang artinya source file yang akan diupload
  6. -v adalah curl verbose, artinya seluruh proses curl akan dimunculkan sebagai debug.

Pada contoh yang kita bahas, direktori targetnya diberi nama dengan Testing.

dropbox api folder target
Mari kita lanjutkan dengan Dropbox Account kita, untuk membuat Access Token.

Membuat Apps untuk Backup pada Dropbox

Membuat Apps pada Akun Developer Dropbox

Eh? Sudah jadi membuat akun Dropbox seperti yang ditunjukkan di atas? Jika belum, silakan membuat dulu akun Dropbox, dan pastikan kita bisa login ke dalamnya. Jika sudah login maka akan muncul halaman utama Dropbox Account kita. (https://dropbox.com/h)

Halaman Utama Dropbox
Halaman Utama Dropbox

Sebagai pengguna, kita juga disediakan URL Dropbox Developer, khusus untuk pengguna advanced yang biasa mendevel API. Lokasinya adalah di https://www.dropbox.com/developers/. Di situ terdapat navigasi-navigasi utama ke :

  1. Dokumentasi Developer : https://www.dropbox.com/developers/documentation
  2. Panduan : https://www.dropbox.com/developers/reference
  3. Komunitas dan Dukungan : https://www.dropbox.com/developers/support
  4. App Console : https://www.dropbox.com/developers/apps

Mari kita menuju ke App Console.

Halaman depan Dropbox Apps
Halaman Dropbox Apps

Berikut adalah halaman Dropbox Apps saya. Mungkin di tempat anda, masih kosong. Mari kita Create App. Silakan klik Create App.

create-app-dropbox-step-by-step
Create App Dropbox

Di sini kita diminta menentukan skop akses App Dropbox kita, apakah hanya akan mencakup folder saja, atau hingga seluruh space Dropbox kita. Di sini juga diminta mengisikan nama dari apps. Saya akan mengisi : BackupLat. Oh ya, ndak boleh pakai nama mengandung Dropbox dan diawali drop ya… ndak boleh.. Kata Dropbox, “Be Creative”. Jangan sampai kita dikatakan nggak kreatif sama Dropbox 😅. Jika sukses, akan segera menuju ke halaman selanjutnya.

Mengambil Access Token

Halaman Dropbox Api

Hati-hati, ada yang perlu dilindungi di sini : yang pertama adalah App Key, App Secret, dan Access Token. Access Token ini jika sampai tercuri, waaah bahaya dab.. Isi folder kita bisa diisi gambar yang tidak senonoh, atau malah file-file backup kita diacak-acak orang. Hati-hati mas dab. Silakan Generate Access Token, dan simpan di tempat yang aman. Oh ya di sini kita ada di mode Development. Mode Development ini adalah mode untuk coba-coba. Setelah kita sukses mencoba, maka kita bisa naik kelas ke Mode Production/Live. Nah, sudah dapat Access Token?

Setelah dapat Access Token Dropbox Api, kita bisa memulai testing dengan beberapa cara. Biasanya para kuli server seperti saya, akan menggunakan curl untuk melakukan testing. Para developer akan menggunakan Postman untuk testing, sedangkan para hacker akan menggunakan Burp Suite atau Owasp ZAP untuk testing. Hehehe, nanti kita akan coba testing ya.

Pada halaman ini juga, kita dapat melakukan akses untuk user lain, jika diperlukan. Terletak pada bagian Additional User. Kita juga dapat menentukan masa kadaluarsa App ini. Pilihannya adalah Short Live atau No Expiration.

Menentukan Scope Access

Tab Menu Dropbox Api

Pergilah ke tab Permission pada halaman Dropbox Api anda. Maka anda akan mendapatkan listing scope access seperti berikut ini :

access scope dropbox api

Pastikan bahwa pada bagian files.content.write, tercentang dengan sukses. Jika ini tidak tercentang, maka Dropbox tidak akan mengijinkan API menulis di situ.

Menyiapkan Direktori Sumber dan Direktori Target

Direktori / Folder sumber, ada di PC/Server kita. Sedangkan Direktori Target ada di Dropbox. Sebaiknya nama Foldernya disamakan saja dengan nama App Project. Nama App project saya, saya beri nama dengan BackupLat. Setelah semua beres, kita dapat segera mencoba Dropbox Api kita di bagian Testing. Let’s Testing!

Testing Curl Upload Dropbox Api

Mari kita uji Dropbox Api kita, di console.

  1. Pastikan lokasi Direktori Kerja kita di komputer. Di Linux bisa dong ketik : pwd (print working directory)
  2. Testing dulu dong “curl  https://content.dropboxapi.com/2/files/upload” , coba keluar respons apa. Jika URL anda benar, akan muncul kata “Error in call to API function “files/upload”: Must provide HTTP header “Authorization” or URL parameter “authorization
  3. Siapkan file di direktori kerja kita. Misal di tempat saya, ada file bernama : ecampuz.jpg
  4. Mari kita testing curl dengan lengkap
curl -X POST https://content.dropboxapi.com/2/files/upload \
--header "Authorization: Bearer AABBCC-Rahasia-dong-11223344" \
--header "Dropbox-API-Arg: {\"path\": \"/Backup_Lat/ecampuz.png\"}" \
--header "Content-Type: application/octet-stream" \
--data-binary @ecampuz.png

Hasil testing adalah seperti berikut. Ini adalah kondisi upload sukses.

{"name": "ecampuz.png", "path_lower": "/backuplat/ecampuz.png", 
"path_display": "/BackupLat/ecampuz.png", "id": "id:OCnXTgOrDegAAAAAAAAD5g", 
"client_modified": "2021-05-02T06:51:10Z", "server_modified": "2021-05-02T06:51:11Z", 
"rev": "015c15345359e030000000236a46960", "size": 23534, 
"is_downloadable": true, "content_hash": "f7a18de532dd10b69aa85b28ba6cf6ec67a3f5e45"}

Lho, nggak pakai -v? Pakai -v digunakan untuk melakukan debug apabila proses menunjukkan error. Jika sudah sukses, tentu di halaman Dropbox gambar tersebut sudah muncul tentunya. Mari kita lihat :

Gambar Telah Terupload

File akan terupload di direktori di App/BackupLat/ecampuz.png. Nah sampai sini proses ini berhasil. Kita juga bisa menyimpan file-file SQL misal, atau file-file foto sebagai backup di cloud Dropbox.

Operasional File Lainnya

Operasional File di penyimpanan cloud seperti Dropbox ini antara lain :

  • upload
  • download
  • hapus
  • list
  • copy
  • dll

Semua operasional file itu dapat dilihat pada dokumentasi Dropbox Api pada https://www.dropbox.com/developers/documentation/http/documentation.  Lho? Lantas kita harus mempelajari satu-satu dong? Bagi yang menyukai penasaran, silakan mempelajari satu-satu hal itu. Namun yang tidak ada cara lain. Banyak script yang sudah dishare oleh banyak contributor di github, yang memudahkan kita mengelola proses backup restore Dropbox. Nanti, dengan bantuan bash cron job, atau trigger yang lain, proses backup restore dapat secara otomatis dilakukan. Menarik ya…

Uploader Script Dropbox API

Di internet selalu saja ada orang selow yang menulis sesuatu yang berguna untuk orang lain. Ada script uploader Dropbox, yang berfungsi untuk memudahkan user mengelola file di Dropbox. Script ini ada di https://github.com/andreafabrizi/Dropbox-Uploader. Kita tinggal melakukan clone, memberikan akses executable, kemudian kita ikuti tutorialnya. Pada halaman Github tersebut juga telah diberikan langkah-langkah untuk operasional file. Antara lain :

  • upload
  • download
  • delete
  • copy
  • move
  • mkdir
  • list
  • monitor
  • share
  • saveurl
  • space
  • unlink

Dengan bantuan script ini kita dapat dengan mudah melakukan manajemen backup server ke Dropbox.

Mungkinkah Backup Aplikasi Akademik Diletakkan di Dropbox?

Mungkinkah backup aplikasi akademik diletakkan di Dropbox? Technically sangat mungkin. Hanya saja faktor yang perlu diperhatikan adalah :

  1. Hati-hati dengan ACCESS TOKEN. Harus benar-benar tersimpan rahasia. Jika sampai bocor, bisa jadi insiden Data Breach.
  2. Sesuaikan dengan kapasitas, jangan sampai dong backup file melebihi dari jatah kuota simpan kita.

Nah, sobat kampus, selamat mencoba trik-trik ini ya. Ingat masa kini adalah masanya : cloud dan otomasi. Dropbox API adalah salah satu cara saja untuk membuat layanan data kita lebih sigap dengan backup. Apakah ada layanan lainnya? Banyak sekali layanan data di internet. Namun Dropbox adalah salah satu yang populer karena dia menyiapkan integrasi antar client, dan juga API yang dibuat dapat multiuser.