English 简体中文
A modified version of the rclone Provide dynamic replacement SA file support for google drive operation. All other functions are the same as rclone.
This version includes PR#38 in original gclone filepath end with slash /
// View version information
gclone version
Add service_account_file_path
Configuration. For dynamic replacement service_account_file(SA file). Replaces SA file when rateLimitExceeded
error occurs to bypass 750GB limit.
rclone.conf
example:
[gc]
type = drive
scope = drive
service_account_file = /root/accounts/1.json
service_account_file_path = /root/accounts/ <------- (Important) Add this in configuration
root_folder_id = root
/root/accounts/
Folder contains multiple access and edit permissions service account file (x.json).
Once set up, when gclone
sees rateLimitExceeded
error, it will automatically change SA file, seamlessly bypassing the limit in real-time.
Read the instructions here written by me.
You can find the original repository written by me.
If the original rclone is across team disks or shared folders, multiple configuration drive letters are required for operation.
gclone supports Folder ID operations
gclone copy gc:{folder_id1} gc:{folder_id2} --drive-server-side-across-configs
folder_id1 can be: common directory, shared directory, team drive.
gclone copy gc:{folder_id1} gc:{folder_id2}/media/ --drive-server-side-across-configs
gclone copy gc:{shared_folder_id} gc:{folder_id2} --drive-server-side-across-configs
id
operations: common directory, shared directory, team drive.
gclone copy gc:{shared_file_id} gc:{folder_id2} --drive-server-side-across-configs
Supports {Folder ID} proceeding filepaths
gclone copy gc:{shared_file_id} gc:{Team Drive ID}/media/ --drive-server-side-across-configs
All additional code that makes gclone run is encased. Most of the code edited is in drive.go inside \backend\drive
//------------------------------------------------------------
// 如果存在 ServiceAccountFilePath,调用 changeSvc, 重试
// If ServiceAccountFilePath exists, call changeSvc and try again
if(f.opt.ServiceAccountFilePath != ""){
f.waitChangeSvc.Lock()
f.changeSvc()
f.waitChangeSvc.Unlock()
return true, err
}
//------------------------------------------------------------