Clone Files to Cloud Storage: Difference between revisions

From WickyWiki
mNo edit summary
Line 73: Line 73:
* Select "ENABLE APIS AND SERVICES" and enable the "Google Drive API"
* Select "ENABLE APIS AND SERVICES" and enable the "Google Drive API"
* Use the " Create Credentials" button to create a "Service account key". Pick a "Service account name". "Role" can be empty.
* Use the " Create Credentials" button to create a "Service account key". Pick a "Service account name". "Role" can be empty.
* Select "Key type JSON" and save the file for use with rclone config
* Select "Key type JSON" and save the file (rclone.json) for use with rclone config


=== Configure rclone ===
=== Configure rclone ===
Line 86: Line 86:
scope> drive        # Full access all files, excluding Application Data Folder
scope> drive        # Full access all files, excluding Application Data Folder
root_folder_id>  
root_folder_id>  
service_account_file> /home/pi/Scripts/rclone-4682b69ab73b.json
service_account_file> /home/pi/Scripts/rclone.json
Edit advanced config?> n
Edit advanced config?> n
Configure this as a team drive?> n
Configure this as a team drive?> n
Line 111: Line 111:
* https://rclone.org/crypt/
* https://rclone.org/crypt/


Define an encrypted target, in this example the configured remote 'gdrive1' is used as storage in subfolder 'crypt'.
Define an encrypted target, in this example the configured remote 'gdrive' is used as storage in subfolder 'crypt'.


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>

Revision as of 20:07, 20 September 2018


Links

Install

wget https://rclone.org/install.sh
chmod +x install.sh
sudo ./install.sh

Configure

Google Drive Client Access

Configure the account :

Configure rclone

Note:

  • This will partly be repeated after the access token has expired.
rclone config
	n                   # New remote
	name> gdrive1       # Any short name
	Storage Type> drive # Google Drive
	client_id> 
	client_secret> 
	scope> drive        # Full access all files, excluding Application Data Folder
	root_folder_id> 
	service_account_file>
	Auto config> y      #your browser will open, login with your gmail account and allow access
	Team drives> n	
	is this OK?> y

Sync from local to Google Drive, name 'gdrive1', folder 'rclone':

rclone sync -v ~/test4.txt "gdrive1:/rclone/"

Sync from Google Drive to local:

rclone sync -v  "gdrive1:/rclone/test4.txt" ~/rclone/

Google Drive Service Account

Note:

  • The service account and the main account do not share access to Google Drive files.
  • You can not use the Webinterface to access the service account Google Drive files. However, a service account is still the preferred method if you want to machine-to-machine interaction.
  • To be able to use 'drive-impersonate' you need a "G Suite domain", for this you will need to use a domain that you 'own'. There are various ways to prove you 'own' a domain.

Create a service account :

  • Go to the Developer Console: https://console.developers.google.com/apis/dashboard
  • Login if needed, makes sure you have the corrrect account
  • Create a project and select it
  • Select "ENABLE APIS AND SERVICES" and enable the "Google Drive API"
  • Use the " Create Credentials" button to create a "Service account key". Pick a "Service account name". "Role" can be empty.
  • Select "Key type JSON" and save the file (rclone.json) for use with rclone config

Configure rclone

rclone config
	n                   # New remote
	name> gdrive        # Any short name
	Storage Type> drive # Google Drive
	client_id> 
	client_secret> 
	scope> drive        # Full access all files, excluding Application Data Folder
	root_folder_id> 
	service_account_file> /home/pi/Scripts/rclone.json
	Edit advanced config?> n
	Configure this as a team drive?> n
	is this OK?> y

List contents:

rclone lsf -v "gdrive:"

Sync:

rclone sync -v /home/pi/Documents "gdrive:/rclone/"

List of rclone commands:

Encryption

Define an encrypted target, in this example the configured remote 'gdrive' is used as storage in subfolder 'crypt'.

rclone config
	e/n/d/r/c/s/q> n
	name> gdrive2
	Storage> crypt
	remote> gdrive:/crypt
	filename_encryption> 2
	directory_name_encryption> 1
	type password y/g/n> y
	seed y/g/n> n
	advanced config y/n> n

Sync from local to Google Drive, name 'gdrive2':

rclone sync -v /home/pi/Documents "gdrive2:/"

List contents (encrypted):

rclone lsf -v "gdrive:/crypt"

List contents (decrypted):

rclone lsf -v "gdrive2:"