SeaDrive 2.0.1 is ready for testing

Dear Seafile community,

Since the release of SeaDrive 2.0.0, we have received a lot feedback from you. We’ve now fixed most of the issues and made some improvements to SeaDrive 2.0. It is now available for testing. Please give more feedbacks!

Change log:

  • Fix issues when switching languages
  • Fix issues for legacy Windows “8.3 format” paths
  • Improve speed of creating placeholders
  • Don’t add SeaDrive cache folder to Windows search index
  • Use short hash instead of “servername_account” for cache folder name
  • Prevent the old Explorer extension from calling new SeaDrive (avoiding high CPU usage)
  • Fix small issues in encrypted library support
  • Change installation location from “Seafile Ltd” to “Seafile”
  • Add SeaDrive entry to Windows start menu
  • Change “seadrive” to “SeaDrive” in Explorer navigation pane
  • Fix SSO re-login failure

You may download SeaDrive 2.0.1 from the link below:

SeaDrive 2.0.1

3 Likes

Thanks for letting us test this.

When opening images/videos it shows a “copy window” before opening. Will this eventually be “fixed” to work more like the old client, which also was able to stream videofiles. Also, will thumbnails be able to function like in OneDrive where - to my knowledge - thumbnails can be shown without actually caching the entire image file.

Thanks for this update!! This are my comments.

First things first, things I consider bugs:
1.) When uninstalling, registry keys in HKEY_CLASSES_ROOT\CLSID and HKEY_CLASSES_ROOT\WOW6432Node\CLSID (7DB3BDAA in my case) are not removed.

2.) In SeaDrive 2.0, when switching languages, the four folders “My libraries”, “Shared with me”, … got multiplied and appeared in every language chosen.

This problem still exists in a less extreme version. The folder “My libraries” (or its German equivalent) did not get deleted when I switched to English. When I click on it, the folder is empty. So apparently, the data got moved, but the folder was not deleted.

3.) Automatic file locking works flawless, but the Windows Explorer windows is not refreshed automatically when I open / close an office file on my local machine.

This is what I observer in a folder with multiple office files (DOCX, XLSX, PPTX) and Office 365:

  • I double-click one office file -> the file is opened in the editor, the file is not shown as locked in Windows Explorer
  • I double-click another office file -> the second file is opened, the first file is now shown as locked in Windows Exlorer, the second is not
  • I close the first office file -> the editor is closed, both files are now shown as locked in Windows Explorer
  • When hitting the refresh button, the correct lock status is shown in Windows Explorer

Not sure if this is a problem with my computer only, but I also observed it on a second machine with O365 and an up-to-date Windows 10.

This is what the log shows with SEADRIVE_DEBUG set to ‘watch’ (my comments preceded by #):

#Open first office file
[04/13/20 19:07:52] Created My Libraries/Office Integration/~$example_table.xlsx.
[04/13/20 19:07:52] Syncroot event: 0, My Libraries/Office Integration/~$example_table.xlsx, (NULL)
[04/13/20 19:07:52] create/update 98a6211d-170f-457a-b2f6-93dde7eb2b84/~$example_table.xlsx
[04/13/20 19:07:52] Modified My Libraries/Office Integration/~$example_table.xlsx.
[04/13/20 19:07:52] Syncroot event: 0, My Libraries/Office Integration/~$example_table.xlsx, (NULL)
[04/13/20 19:07:52] create/update 98a6211d-170f-457a-b2f6-93dde7eb2b84/~$example_table.xlsx
[04/13/20 19:07:52] Modified My Libraries/Office Integration.
[04/13/20 19:07:52] Syncroot event: 0, My Libraries/Office Integration, (NULL)
[04/13/20 19:07:52] Modified My Libraries/Office Integration/~$example_table.xlsx.
[04/13/20 19:07:52] Syncroot event: 0, My Libraries/Office Integration/~$example_table.xlsx, (NULL)
[04/13/20 19:07:52] create/update 98a6211d-170f-457a-b2f6-93dde7eb2b84/~$example_table.xlsx
[04/13/20 19:07:54] Repo ‘Office Integration’ sync state transition from ‘synchronized’ to ‘committing’.
[04/13/20 19:07:54] All events are processed for repo 98a6211d-170f-457a-b2f6-93dde7eb2b84.
[04/13/20 19:07:54] Auto lock file Office Integration/example_table.xlsx
[04/13/20 19:07:54] Repo ‘Office Integration’ sync state transition from ‘committing’ to ‘synchronized’.
–> file is not shown as locked in Windows Explorer

#Open second office file
[04/13/20 19:08:11] Created My Libraries/Office Integration/~$ample_word.docx.
[04/13/20 19:08:11] Syncroot event: 0, My Libraries/Office Integration/~$ample_word.docx, (NULL)
[04/13/20 19:08:11] create/update 98a6211d-170f-457a-b2f6-93dde7eb2b84/~$ample_word.docx
[04/13/20 19:08:11] Modified My Libraries/Office Integration/~$ample_word.docx.
[04/13/20 19:08:11] Syncroot event: 0, My Libraries/Office Integration/~$ample_word.docx, (NULL)
[04/13/20 19:08:11] create/update 98a6211d-170f-457a-b2f6-93dde7eb2b84/~$ample_word.docx
[04/13/20 19:08:11] Modified My Libraries/Office Integration.
[04/13/20 19:08:11] Syncroot event: 0, My Libraries/Office Integration, (NULL)
[04/13/20 19:08:11] Modified My Libraries/Office Integration/~$ample_word.docx.
[04/13/20 19:08:11] Syncroot event: 0, My Libraries/Office Integration/~$ample_word.docx, (NULL)
[04/13/20 19:08:11] create/update 98a6211d-170f-457a-b2f6-93dde7eb2b84/~$ample_word.docx
[04/13/20 19:08:13] Repo ‘Office Integration’ sync state transition from ‘synchronized’ to ‘committing’.
[04/13/20 19:08:13] All events are processed for repo 98a6211d-170f-457a-b2f6-93dde7eb2b84.
[04/13/20 19:08:13] Auto lock file Office Integration/example_word.docx
[04/13/20 19:08:13] Repo ‘Office Integration’ sync state transition from ‘committing’ to ‘synchronized’.
#–> Only first office file is shown as locked in Windows Explorer

#Close first office file again
[04/13/20 19:09:39] Deleted My Libraries/Office Integration/~$example_table.xlsx.
[04/13/20 19:09:39] Syncroot event: 1, My Libraries/Office Integration/~$example_table.xlsx, (NULL)
[04/13/20 19:09:39] delete 98a6211d-170f-457a-b2f6-93dde7eb2b84/~$example_table.xlsx
[04/13/20 19:09:39] Modified My Libraries/Office Integration.
[04/13/20 19:09:39] Syncroot event: 0, My Libraries/Office Integration, (NULL)
[04/13/20 19:09:41] Repo ‘Office Integration’ sync state transition from ‘synchronized’ to ‘committing’.
[04/13/20 19:09:41] All events are processed for repo 98a6211d-170f-457a-b2f6-93dde7eb2b84.
[04/13/20 19:09:41] Auto unlock file Office Integration/example_table.xlsx
[04/13/20 19:09:41] Repo ‘Office Integration’ sync state transition from ‘committing’ to ‘synchronized’.
#–> Both office files are shown as locked

#Close second office file again
[04/13/20 19:11:12] Deleted My Libraries/Office Integration/~$ample_word.docx.
[04/13/20 19:11:12] Syncroot event: 1, My Libraries/Office Integration/~$ample_word.docx, (NULL)
[04/13/20 19:11:12] delete 98a6211d-170f-457a-b2f6-93dde7eb2b84/~$ample_word.docx
[04/13/20 19:11:12] Modified My Libraries/Office Integration.
[04/13/20 19:11:12] Syncroot event: 0, My Libraries/Office Integration, (NULL)
[04/13/20 19:11:14] Repo ‘Office Integration’ sync state transition from ‘synchronized’ to ‘committing’.
[04/13/20 19:11:14] All events are processed for repo 98a6211d-170f-457a-b2f6-93dde7eb2b84.
[04/13/20 19:11:14] Auto unlock file Office Integration/example_word.docx
[04/13/20 19:11:14] Repo ‘Office Integration’ sync state transition from ‘committing’ to ‘synchronized’.
#–> Second office file still shown as locked

#When I hit refresh, the status of the second office file also goes to unlocked

4.) When moving files to a folder that is “always keep on this device”-ed, the files do not get uploaded. The stay in this “sync pending” status. (In the screenshot below, I copied the three PDF documents and the 123.xlsx in the folder three minutes before making the screenshot.)

Secondly, things not really being bugs but that should be fixed
I.) When uninstalling, the folder “seafile” in %userprofile% is not deleted. Ideally, the user would be asked whether or not to delete it.

II.) The transfer progress windows does not seem to capture all operations. I had SeaDrive download an entire folder by hitting “always keep on this device” in the context menu. This is the result:

Thirdly, nice-to-haves / feature requests:
i.) Most importantly in this category: Context menu items to generate sharing/internal links, lock files, … (I realize that there are plans to add it soon. I just add it here for completeness.)

ii.) The transfer progress window is missing a time/date column. IMHO, a time/date column helps troubleshooting when things go wrong as well as general transparency. In the same vein, I would be great if the transfer progress would show more than a maximum of the last 11 uploaded/downloaded elements. (Size adjustable columns would also be great.)

Finally, a have questions:
a.) How can I map the folder names under %userprofile%/seafile_root to the accounts registered in SeaDrive? If I use SeaDrive to multiple Seafile Server, I may end up with multiple folders and I don’t know which one is which unless I do some digging in the folders?

1 Like
  1. We’ll test the API for whether it support progressive file reading. But it is not in our recent plan.
  2. Yes thumbnails will eventually work like OneDrive.

This is somehow left-over by the Windows API used to register an entry in Explorer… The entry is used for 32-bit applications, even though SeaDrive 2.0 is 64-bit. But we’ll find some way to remove it anyway.

Does the German version exist before you upgrade to 2.0.1 version? The client won’t delete existing category folders, to be safe. You may manually remove it and test again.

I can now reproduce the issue. We’ll see how to fix it.

I cannot reproduce the problem. Can you be more specific about the procedure?

We’ll add back this feature.

Does the file “dfd.md” has any contents?

It’s a trade-off to save some characters in the file paths. You can only dig in the folders to check which account it is.

Hi Jonathan,

two additions to my feedback:
1.) As for the extra “My libraries” folder after a language switch: I tried to delete the extra folder manually. It wouldn’t let me. Windows requested admin privileges, which I had and granted, but the folder still couldn’t be deleted. I have just tried it again and couldn’t reproduce the problem. Actually, it worked really well despite effots on my part to provoke problems. In short: Drop this comment please.

2.) As for the always-in-sync issue: When copying a file in a library/folder in SeaDrive, the normal behavior is that the file is uploaded to the Seafile server. In terms of status, the file is first in status “syncing” and then switches to “full file, not pinned” once the upload is complete.

This does NOT seem to work with folders that are set to “always keep in sync”. When I copy a file in such a folder, the file’s status remains “syncing” indefinitely. This is not only a display problem. The file is not uploaded. When using Seahub, I don’t see the file in the folder in which I copied it. The transfer progress does not show any upload either.

One and the same file that gets successfully uploaded into a non-always-kept-in-sync folder is NOT successfully uploaded into a always-keep-in-sync folder. I have tested with different (non empty) files and file types. The problem persists.

What I also did was this: I copied a file in a always-keep-in-sync folder. Since the upload was not successful, I deleted the file from the always-keep-in-sync folder. Then I freed up space in this folder (=I set the folder to do-not-always-keep-in-sync) and copied the file in the folder again. The file upload was successful right away.

Hi @rdb,

From where did you copy the files? Are the files from outside of SeaDrive, or from another folder or library in SeaDrive? I’ve tested various cases and it always worked. Can you share the seadrive.log with debug message enabled?

I’m using the drive client with german language. When I open the menu, the string “Show encrypted libraries” is not translated.

I just checked in Transifex, the translation system used for all Seafile components. The string is translated. I guess the newest translations wasn’t pulled when 2.0.1 was compiled.

With pleasure!

This is the situation, my action and the log:

#Situation: Library ‘Always-in-sync-folder’ contains four non-empty dummy files; all are shown as full files in Windows Explorer and they are listed in SeaHub, the library is set to always-keep-in-sync
#Action: I copy a (non-empty, 38KB) DOCX-file via drag&drop from my desktop into the library in SeaDrive
[04/15/20 12:04:27] Created Meine Bibliotheken/Always-in-sync-folder/Copied_file_1.docx.
[04/15/20 12:04:27] Syncroot event: 0, Meine Bibliotheken/Always-in-sync-folder/Copied_file_1.docx, (NULL)
[04/15/20 12:04:27] Modified Meine Bibliotheken/Always-in-sync-folder/Copied_file_1.docx.
[04/15/20 12:04:27] Syncroot event: 0, Meine Bibliotheken/Always-in-sync-folder/Copied_file_1.docx, (NULL)
[04/15/20 12:04:27] Modified Meine Bibliotheken/Always-in-sync-folder.
[04/15/20 12:04:27] Syncroot event: 0, Meine Bibliotheken/Always-in-sync-folder, (NULL)
#Situation at 12:06: The files status is still “sync pending” and it is not listed in Seahub.

Hello,
Optimization does not yet seem optimal.

You will find the latest logs for indexing windows files here

C:\ProgramData\Microsoft\Search\Data\Applications\Windows\GatherLogs\SystemIndex

From my side we can see that it indexes this type of directory :
C:/Users/XXX/seadrive_root/
C:\Users\XXX\seadrive\

Here’s how windows will exclude the directory temp from indexing

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules\17]
"URL"="file:///C:\\[c254f7f7-6470-4c75-9510-a582c136757b]\\Windows\\*\\temp\\"
"Include"=dword:00000000
"Suppress"=dword:00000000
"Default"=dword:00000001
"Policy"=dword:00000000
"NoContent"=dword:00000000

You could do this style of things

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules\14]
"URL"="file:///C:\\[c254f7f7-6470-4c75-9510-a582c136757b]\\Users\\*\\seadrive\\"
"Include"=dword:00000000
"Suppress"=dword:00000000
"Default"=dword:00000000
"Policy"=dword:00000000
"NoContent"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules\15]
"URL"="file:///C:\\[c254f7f7-6470-4c75-9510-a582c136757b]\\Users\\*\\seadrive_root\\"
"Include"=dword:00000000
"Suppress"=dword:00000000
"Default"=dword:00000000
"Policy"=dword:00000000
"NoContent"=dword:00000000

The difficulty now is to be able to change the number “[c254f7f7-6470-4c75-9510-a582c136757b” which seems different for each computer.

In addition to being able to add values ​​to this tree structure which seems non-changeable, not authorized by Windows

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules

Hi, where can I download the linux version beta? I can only see a Windows version.

I see that in this version of Seadrive we no longer have the management of the Seadrive cache? Is this a function that will return?

Hi Jacky,
please have look here: https://download.seafile.com/published/seafile-user-manual/drive_client/drive_client_2.0_for_windows_10.md#user-content-How%20do%20I%20clean%20the%20cache?

We’ll update the translation in the next version. There are other new strings to be updated.

Updates to Mac and Linux are also scheduled. There is no change to the virtual drive functionality for Mac and Linux though. The only new addition is encrypted library support.

1 Like

Hi @jacky35

It is possible to exclude the SeaDrive cache folder in Windows search. Actually we disabled the old cached folder in SeaDrive 1.0 to avoid a confusing situation: users may accidentally open the file in the cache folder instead of the one in virtual drive when use the Windows search. But in SeaDrive 2.0, the mechanism is changed. The users should open the file in the cache folder directly. There is NO internal, user-invisible cache any more.

Excluding the cache folder from Windows search will make the files un-searchable in Windows search. This can confuse some users.

I think the “issue” you observed is a natural consequence of having too many files in the virtual drive. Even though Windows search won’t index the file contents, it still has to index the file names. This can take time and CPU. Once it’s done, it should not use too much CPU time in the future. I think having the virtual drive work smoothly with Windows search is one advantage of using the Windows native API.

I myself have about 20,000 files in the virtual drive. After the index servicing running for a while, now it never takes much CPU time anymore.

Is it possible to use multiple accounts to different servers with version 2?

It is. But you have to switch between them.

Example: When you are connected to two different servers, you do not have two nodes in your navigation. The the account selected is the one kept in sync.

I see, thanks. Would be nice to have multiple accounts enabled at once.