Closed Gorden-Tseng closed 4 years ago
@Gorden-Tseng It definitely should not take this long. What's actually taking 5 minutes in your case is the retrieval of the local and remote files. So either reading your local files takes too long (unlikely with only 50MB of data) or there is some connection problem between you and your Drive. To narrow it down further, you could add the line puts Time.now
before lines 83, 85 and 87 in synchronizer.rb (@local.get_files / @drive.get_files / get_diff). That way you can see which method is taking so long, although I highly suspect it's @drive.get_files.
@MStadlmeier You're right, it is @drive.get_files.
$ ruby drivesync.rb 2019-09-20 10:46:29 -0400 2019-09-20 10:46:29 -0400 2019-09-20 10:51:28 -0400 Local folder is 0 files behind and 0 files ahead of remote Starting sync at 2019-09-20 10:51:28 -0400
Sync complete.
Any suggestion as to what I could do?
@Gorden-Tseng Do you still have this problem? If so, does Google Drive in your browser work normally or is it slow as well?
@MStadlmeier I still have this problem. Google Drive on my browser works normally without any delay or issue. I'm also using Google Drive's official client on my Windows machine and it syncs immediately.
I was able to massively speed up syncing by only getting files owned by me:
results = @service.list_files(q: "'me' in owners and not trashed", fields: fields, page_token: next_token, page_size: 300)
root@S2:~$ time ruby /opt/drivesync/drivesync.rb
Getting local files... @ 2020-05-02 01:47:47 -0400
Getting remote files... @ 2020-05-02 01:47:47 -0400
>>> Call list_files @ 2020-05-02 01:47:47 -0400
<<< Fetched 127 @ 2020-05-02 01:47:50 -0400
Counted 5 remote files in 14 folders
Calculating diff... @ 2020-05-02 01:47:50 -0400
Local folder is 0 files behind and 0 files ahead of remote
Starting sync at 2020-05-02 01:47:50 -0400
Sync complete.
real 0m4.084s
user 0m0.406s
sys 0m0.156s
Before, it was digging through the million files shared with me. (As an aside, the google drive API is a pain in the ass! Thanks for your work :smile:)
I was able to massively speed up syncing by only getting files owned by me:
results = @service.list_files(q: "'me' in owners and not trashed", fields: fields, page_token: next_token, page_size: 300)
root@S2:~$ time ruby /opt/drivesync/drivesync.rb Getting local files... @ 2020-05-02 01:47:47 -0400 Getting remote files... @ 2020-05-02 01:47:47 -0400 >>> Call list_files @ 2020-05-02 01:47:47 -0400 <<< Fetched 127 @ 2020-05-02 01:47:50 -0400 Counted 5 remote files in 14 folders Calculating diff... @ 2020-05-02 01:47:50 -0400 Local folder is 0 files behind and 0 files ahead of remote Starting sync at 2020-05-02 01:47:50 -0400 Sync complete. real 0m4.084s user 0m0.406s sys 0m0.156s
Before, it was digging through the million files shared with me. (As an aside, the google drive API is a pain in the ass! Thanks for your work 😄)
Thanks! Changing this line in drive_manager.rb
solves the issue!
When I run
ruby drivesync.rb
, the console will hang for about 5 minutes before outputting the "Sync complete." message, even if everything is already synced. Is this normal?Here's an example, I first print the time to show you how long the sync takes:
I've only used less than 50MB of the drive space.