Sync Google Drive with Github Action
![Sync Google Drive with Github Action](/content/images/size/w2000/2022/06/Thumbnail-Youtube-Makeup-Waktu-Singkat-Kolase-Putih.png)
Oke guys, di artikel sebelumnya kita bahas tentang mendownload torrent ke google drive via Github Action, kali ini kita akan menggunakannya untuk synchronize data dari satu akun drive ke akun lainnya.
Synchronization data ini berguna bagi anda untuk membackup data ke akun google drive yang lain, untuk mengantisipasi data kita hilang atau akun google kita di suspend oleh administrator, seperti pengalaman saya beberapa bulan yang lalu akun google drive kampus saya tiba-tiba tidak dapat diakses lagi karena disuspend oleh adminnya, padahal didalamnya masih terdapat data-data yang lumayan penting.
Oke ya langsung saja ke caranya:
Siapkan 2 Akun Google Drive
pertama kita perlu siapkan 2 akun google drive ya, akun pertama sebagai source (berisi data yang akan di duplicate/backup) dan akun kedua sebagai target (tempat untuk menyimpan hasil duplication/backup).
Google Drive Project
Selanjutnya buat project di google console seperti pada artikel ini ya (atau gunakan kembali juga sudah buat), jangan lupa tambahkan 2 email dari akun google drive temen2.
![](https://blog.uripsub.dev/content/images/2022/06/Screen-Shot-2022-06-15-at-16.11.04.png)
setelah itu kita simpan client_id
dan client_secret
nya.
Generate Token
Oke setelah kita buat project, langkah selanjutnya adalah generate token. silahkan buka https://developers.google.com/oauthplayground
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-29.png)
Klik icon setting > centang Use your own OAuth credentials
> masukkan Client ID
& Client Secret
kalian > klik close
.
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-33.png)
di bagian API, scroll dan pilih Drive API v3
> centang https://googleapis.com/auth/drive
> klik tombol Authorize API
.
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-36.png)
Pilih email yang dimasukkan ke test users tadi ya
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-11_20-37.png)
pilih email project kalian > klik Allow
Silahkan copy token seperti yang saya tandai ini ya:
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-15_16-17.png)
buka https://jsonformatter.org, paste kan json tokennya, lalu klik minify
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-16_06-59-1.png)
nah, hasil minify inilah yang akan kita gunakan, jadi kita copy dan simpan ya. Lakukan generate token ini ke kedua akun temen2 ya.
Buat Github Actions
Buat new project, pastikan visibility nya public ya. lalu buat file dengan path .github/workflows/sync-drivc.yml
. lalu isikan code berikut:
name: Drive Sync
on:
workflow_dispatch:
env:
SCRIPT_URL: https://gist.githubusercontent.com/subekti404dev/3297651428c31b813c06857f88f19365/raw/7c9b1d0bf75536c2acf9ec852ec67a38d7d021ef/drive_init_config
SOURCE_DIR: "design-code"
TARGET_DIR: ""
jobs:
download:
runs-on: ubuntu-latest
steps:
- name: Write .env File
run: echo '${{ secrets.DOTENV_DRIVE_SYNC }}' >> .env && cat .env
- name: Download Script && Install
run: curl "$SCRIPT_URL" | bash
- name: Mount Drive
run: bash mount.sh
- run: cd drive1 && ls -lah
- run: cd drive2 && ls -lah
- run: rsync -auvr --progress drive1/"$SOURCE_DIR" drive2/"$TARGET_DIR"
ganti SOURCE_DIR
nama folder yang akan di sync (dari drive 1) dan TARGET_DIR
isi dengan nama folder tempat untuk menyimpan data (dari drive 2), isi dengan empty string ("") jika mau menaruhnya di root directory.
Setelah itu pergi ke tab Setting
> pilih menu Secrets
> Pilih sub menu Actions
> klik tombol New Repository secret
.
di field Name
isikan DOTENV_DRIVE_SYNC
, lalu di field Value
isikan variable berikut:
CLIENT_ID=
CLIENT_SECRET=
TOKEN_1=
TOKEN_2=
isi Client ID
dan Client Secret
dengan punya kalian ya (yang didapat dari langkah sebelumnya). Untuk TOKEN_1
isi dengan token yang sudah di minify dari akun google drive 1 (source), TOKEN_2
isi dengan minify token dari akun google 2 (target).
Running Workflow
Untuk menjalankan workflow, masuk ke tab Actions
> Pilih Drive Sync
> Klik Dropdown Run Workflow
lalu terakhir klik tombol Run workflow
.
![](https://blog.uripsub.dev/content/images/2022/06/2022-06-15_16-40.png)
Tinggal pantau lognya ya guys