Sebelumnya saya sudah pernah menjelaskan cara menggunakan Rclone pada artikel Rclone: Solusi Backup ke S3/Wasabi/DO. Kali ini saya ingin melakukan copy antara google drive ke google drive lain, adapun kapasitas google drive pada umumnya tiap user GMail adalah 15 GB.
Saya berpikir gimana caranya untuk copy Google Drive ke Google Drive lain tanpa melakukan Download dan Upload ulang, tanpa simpan ke komputer/server terlebih dahulu. Nah ternyata, Rclone ini menyediakan fasilitas untuk remote copy antara Google Drive ke Google Drive lain. Berikut step by stepnya:
Persiapan
Langkah pertama yang mesti dilakukan adalah membuat sebuah project dan grant API untuk google drive, agar kita dapat melakukan copy sesama google drive. Seperti ini:
1. Login ke Google API Console dengan Gmail manapun: https://console.developers.google.com/
2. Pilih sebuah Project atau Create New Project
3. Pada “ENABLE APIS AND SERVICES” ketik “Drive” dan enable pada “Google Drive API”
4. Klik “Credentials” pada menu samping kiri, bukan dari Wizard ya teman-teman. Kemudian klik “Create credentials” dan pilih “OAuth client ID”, ini memerlukan “OAuth consent screen product name” jika Anda punya maka tidak memerlukan lagi
5. Pada pilihan aplikasi, pilih saja “other” dan klik “Create” pakai default name saja tidak masalah
6. Nanti akan muncul, “client ID” dan “client secret” silakan dicopy paste ke notepad
Konfigurasi Rclone
Tahap awal sama seperti artikel sebelumnya, pastikan rclone sudah diinstall kemudian jalankan perintah:
# rclone config
Pilih new remote
n) New remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config n/r/c/s/q> n
Namanya disesuaikan, dalam hal ini gdrive1 karena kita akan setup 2 google drive.
name> gdrive1
Storagenya pilih “drive” untuk Google Drive
Storage> drive
Masukan client id dan client secret yang sudah kita buat sebelumnya
Google Application Client Id - leave blank normally. client_id> Google Application Client Secret - leave blank normally. client_secret>
Pilih nomor 1 untuk scope agar dapat full access
Scope that rclone should use when requesting access from drive. Choose a number from below, or type in your own value 1 / Full access all files, excluding Application Data Folder. \ "drive" 2 / Read-only access to file metadata and file contents. \ "drive.readonly" / Access to files created by rclone only. 3 | These are visible in the drive website. | File authorization is revoked when the user deauthorizes the app. \ "drive.file" / Allows read and write access to the Application Data folder. 4 | This is not visible in the drive website. \ "drive.appfolder" / Allows read-only access to file metadata but 5 | does not allow any access to read or download file content. \ "drive.metadata.readonly" scope> 1
Selanjutnya dibuat default saja seperti ini
ID of the root folder - leave blank normally. Fill in to access "Computers" folders. (see docs). root_folder_id> Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login. service_account_file>
Login untuk authorization code ketika ada notice seperti ini:
Remote config Use auto config? * Say Y if not sure * Say N if you are working on a remote or headless machine or Y didn't work y) Yes n) No y/n> y If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth Log in and authorize rclone for access Waiting for code...
Buka browser pada alamat http://127.0.0.1:53682/auth kemudian login ke akun Google Drive 1 sampai muncul seperti ini:
Got code Configure this as a team drive? y) Yes n) No y/n> n
Y untuk OK
-------------------- [remote] client_id = client_secret = scope = drive root_folder_id = service_account_file = token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2014-03-16T13:57:58.955387075Z"} -------------------- y) Yes this is OK e) Edit this remote d) Delete this remote y/e/d> y
Hal yang sama dilakukan kembali pada Google Drive 2 dengan nama gdrive2 sampai nanti pada /root/.config/rclone/rclone.conf seperti ini:
[gdrive1] type = drive client_id = client_secret = scope = drive token = {"access_token":""} [gdrive2] type = drive client_id = 355461763527-79j9kqulmoi5msaidqov4dfvpf59531b.apps.googleusercontent.com client_secret = aDPRjoc8sXsc0RspOjM1O2gc scope = drive token = {"access_token":""}
Rclone Copy
Setelah konfigurasi selesai, untuk melakukan copy sangatlah mudah cukup dengan perintah seperti ini:
Copy All Google Drive
rclone copy -vv --disable copy gdrive1: gdrive2:
Copy Folder to Folder
rclone copy -vv --disable copy gdrive1:folderku gdrive2:folderku
Silakan tunggu hingga proses selesai. Gimana gampang bukan? oiya sebagai informasi, untuk copy file ini dibatasi 750GB/day jadi jika sudah melebihi akan tidak bisa copy kembali dan mesti nunggu dihari selanjutnya.
Semoga bermanfaat~~