nextcloud / desktop

💻 Desktop sync client for Nextcloud
https://nextcloud.com/install/#install-clients
GNU General Public License v2.0
3.05k stars 800 forks source link

Thumbnails of photos with Virtual Files #3407

Closed adripo closed 2 years ago

adripo commented 3 years ago

How to use GitHub

Feature description

I am checking out the new feature released with version 3.2 for Virtual Drive and it works quite well. However, there is one thing that is missing and makes the drive concept useless. I'm talking about thumbnails for images. I have a lot of images shared on nextcloud and without a thumbnail I have no idea what I'm looking for so I have to download the whole folder every time I need to search for some particular photos. This is the same behavior as the old synchronization method. I would be very grateful if you could take into account the addition of this feature in future releases. Thank you!

JMLatGitHub commented 3 years ago

The Virtual Drive feature itself is really great, very useful and highly appreciated, but I strongly second this requirement for thumbnails support: if the filenames aren't descriptive, you are actually forced to either download them or identify them directly on the server. This appears really suboptimal and cumbersome to me. This applies to images and videos.

jeffreybrown93 commented 3 years ago

Jumping in first to say thank you to everyone who worked on the new virtual files client as it's working great in my testing so far but also to second above comment. I store predominantly photos on my NextCloud instance and unfortunately have more files than can fit on my laptop SSD. Without seeing thumbnails all images in a folder need to be marked as "always keep on this device" to find anything.

Some additional conversation here - https://help.nextcloud.com/t/feature-request-virtual-files-image-thumbnails/117670/2

FlexW commented 3 years ago

That would be a very useful feature. Help on implementing this would be welcome.

alexanderdd commented 3 years ago

This seems to explain how to implement this feature on Windows https://docs.microsoft.com/en-us/windows/win32/cfapi/build-a-cloud-file-sync-engine

(From the Nextcloud forum as linked above)

Archangel001 commented 3 years ago

It looks nice as a feature, OneDrive and iCloud for Windows have this feature and it is very convenient. I have tons of photos on my Nextcloud instance.

castillo92 commented 3 years ago

This improvement could be very good

godfuture commented 3 years ago

I think what is requested in this ticket is more a bug fix than a feature. I have this problem as well. Files that were copied into the folder and uploaded do show a thumbnail. The rest does not. This was not the case before virtual drive.

If the user wants to have thumbnails, he could basically download everything (this is the opposite of what virtual drive was made for) or he can open the browser and visit the nextcloud instance online.

crazytok commented 3 years ago

I would also love to see this feature as all I use nextcloud for is Photo storage/backup!

robermad1986 commented 3 years ago

Hello everyone. I am happy to see this implementation iscurrently going on. I would just like to point out that this, more than a feature, a bug. Let me explain myself; since the pretended integration of Nextcloud with Windows File Explorer is documented by Microsoft but it hasn't been implemented, the integration with File Explorer is incomplete, not because it wasn't possible, but because the developing team never caught up on this when they designed the client. This, would definitely give this fix a bigger priority on the dev queue.

leapyear1969 commented 3 years ago

👍 voted for this feature! i have tons of photos need to check via thumbnails, it will be great easier for me if bring this feature online.

dawidmachon commented 3 years ago

👍 For now Virtual Files in albums are pretty worthless. This idea is must have for current standard in UI.

robermad1986 commented 3 years ago

Hey everyone. Here's my solution for now until the thumbnail view is integrated in NextCloud client app.

To get integration of nextcloud files and folders I connected File Explorer via WebDAV same way as I map a network drive. All documentation I found is in this link:https://docs.nextcloud.com/server/22/user_manual/en/files/access_webdav.html I found there's a limit for files bigger than 50MB (Windows limitation that shouldn't occur in other Systrems.

When I try to use any file over that size comes the error: 0x800700DF this is known by Microsoft and the solution is provided a bit down in the same link.

Windows limits the maximum size a file transferred from or to a WebDAV share may have. You can increase the value FileSizeLimitInBytes in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters by clicking on Modify.

To increase the limit to the maximum value of 4GB, select Decimal, enter a value of 4294967295, and reboot Windows or restart the WebClient service.

In my particular case restarting WebClient didn't solve but restarting the computer did solve.

Now I can access my files from Nextcloud in my personal computer without sync'ing and I can see the thumbnails of all my files and open, download, share them with Windows File Explorer Integration.

Hope this is useful for everyone until we can have this feature in the Official Client/APP

aze-dzn commented 2 years ago

Would love to see that feature asap.

watermelonpizza commented 2 years ago

This is the one thing that is missing from the desktop client so badly. OneDrive client has it and it's amazing. I really hope someone can implement this soon. <3 I don't have the storage space to be able to sync all my files just for thumbnails.

ados8 commented 2 years ago

I have done my first two Nextcloud projects, mine and a small business. I really need this feature before I can consider it an option for media/photography platforms. It completely renders the virtual file features useless if you have to download them. I know the web works but then you have to upload them, please implement this.

PhilippSchlesinger commented 2 years ago

There is a Windows sample application available implementing the thumbnail provider feature in cfapi: https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/CloudMirror/CloudMirror/ThumbnailProvider.cpp

for the activity view, the analogous thumbnail feature seems to get implemented in https://github.com/nextcloud/desktop/pull/4189

ados8 commented 2 years ago

Thanks NextCloud for approving this. Is there any chance we can get this feature fast tracked. Apart from bugs, I think this feature is fundamentally required to make use of the virtual file system. Since the file system has been implemented some time ago, really need this. If there are betas sign me up!

fskaeh commented 2 years ago

Just coming to +1 this. This is the one missing feature that is keeping me on Mountain Duck for the time being. Generally speaking, having the placeholder files look and feel like regular files, with thumbnails/metadata and without a separate .nextcloud file extension would be great. For MacOS, this could (probably should) be done through the FileProvider API: https://developer.apple.com/documentation/fileprovider, which is what other cloud services use to implement virtual files and smart sync (OneDrive, Dropbox, etc).

JojoBr0 commented 2 years ago

+1 to see this feature implemented

PedroLealJunior commented 2 years ago

I'll love this feature.

mkselim commented 2 years ago

This is an important feature that would make the ones using nextcloud as their Photos data storage really happy.

I can't wait to see it implemented.

Der-Zohan commented 2 years ago

Would love to see this feature :)

PhilippSchlesinger commented 2 years ago

@allexzander Great to see your heavy work on this feature in PR #4713 The resulting feature will make a lot of people happy including me!

adripo commented 2 years ago

I am very happy to see this issue closed! Thank you for the hard work done to enable this feature! :heart: I'm looking forward to test it in the next releases.

spacehitchhiker42 commented 2 years ago

Has this made it into a release?

mgallien commented 2 years ago

Has this made it into a release?

very soon will be in a public release you can test our latest 3.6.0 RC2 in the meantime https://github.com/nextcloud/desktop/releases/tag/v3.6.0-rc2

spacehitchhiker42 commented 2 years ago

Thanks. Looks good so far!

ados8 commented 2 years ago

Excellent work team!! Testing on a few Nextcloud servers has been terrific. Thumbnails load without having to download the image, there are no confusing hidden files for users and forcing online mode doesn't affect the thumbnails. Another reason I promote this platform over Dropbox or OneDrive, shudders at the thought.

opi1994 commented 2 years ago

Thank you for implementing this feature, it works like a charm. This feature improves the usability of Nextcloud so much. I can now manage my pictures without download the whole folder.

snowwolf3388 commented 2 years ago

Amazing! Can I bump this same feature for MacOS? #4335

somedude305 commented 2 years ago

Has this made it into a release?

very soon will be in a public release you can test our latest 3.6.0 RC2 in the meantime https://github.com/nextcloud/desktop/releases/tag/v3.6.0-rc2

Awesome!! Thank you guys

somedude305 commented 2 years ago

Pictures are working great. But still no video thumbnails... :(

opi1994 commented 2 years ago

Pictures are working great. But still no video thumbnails... :(

Do you have video thumbnails in your nextcloud webinterface? If not, this is a problem with your nextcloud server, not with the windows client. Make sure ffmpeg ist installed on your server/docker

allexzander commented 2 years ago

@somedude305 Thumbnails for videos are not enabled by default, as @opi1994 suggested, you need to configure your server.

somedude305 commented 2 years ago

Pictures are working great. But still no video thumbnails... :(

Do you have video thumbnails in your nextcloud webinterface? If not, this is a problem with your nextcloud server, not with the windows client. Make sure ffmpeg ist installed on your server/docker

Ohh I see. Unfortunately I'm using a shared webhost, not a VPS, so I dont have server access and cant install ffmpeg and such, so looks like I'll have to stick this one out

tomasz-lasko commented 1 year ago

hello, can a user (for desktop client on Windows with virtual file system) mark a whole folder tree to preload thumbnails? So that thumbnails begin loading immediately, and each time a new subfolder appears there (sync'ed from server) they are loaded to. This is in order not to wait for loading the thumbnails each time when opening a new folder full of photos (i.e. "new folder" means a folder that hasn't been open before).

Our users have hundreds or thousands of photo directories on Nextcloud, and new photo directories are coming each day, and their job is to very quickly browse through all these folders (old and new folders), so that they can choose photos to be published. So, for them, it is unacceptable to wait for thumbnails to load each time when a new folder is opened. In other words, for them this is the same as they didn't have the thumbnail feature at all.

So is there an option, a command or something to mark a folder tree to always (pre)download thumbnails immediately (when using virtual file system)? This would be the same as the existing option of (pre)downloading whole directory tree under virtual filesystem. Well... I'm not sure if the opposite option of "freeing space" is neccessary for thumbnails, as it is for files/directories. And I don't think it would put extreme load on the server, because now the users are forced not to use the virtual file system but classic syncing in order load all thousands of images to their desktops (so that they have thumbnails immediately), so that is even worse for the server (I guess).

allexzander commented 1 year ago

hello, can a user (for desktop client on Windows with virtual file system) mark a whole folder tree to preload thumbnails? So that thumbnails begin loading immediately, and each time a new subfolder appears there (sync'ed from server) they are loaded to. This is in order not to wait for loading the thumbnails each time when opening a new folder full of photos (i.e. "new folder" means a folder that hasn't been open before).

Our users have hundreds or thousands of photo directories on Nextcloud, and new photo directories are coming each day, and their job is to very quickly browse through all these folders (old and new folders), so that they can choose photos to be published. So, for them, it is unacceptable to wait for thumbnails to load each time when a new folder is opened. In other words, for them this is the same as they didn't have the thumbnail feature at all.

So is there an option, a command or something to mark a folder tree to always (pre)download thumbnails immediately (when using virtual file system)? This would be the same as the existing option of (pre)downloading whole directory tree under virtual filesystem. Well... I'm not sure if the opposite option of "freeing space" is neccessary for thumbnails, as it is for files/directories. And I don't think it would put extreme load on the server, because now the users are forced not to use the virtual file system but classic syncing in order load all thousands of images to their desktops (so that they have thumbnails immediately), so that is even worse for the server (I guess).

The desktop client has no control over when thumbnail loading starts. Windows Explorer triggers it when necessary. There is no known way to change that. A thumbnail gets requested by Windows Explorer for each Shell Item (an image file) separately.

You can mark a folder as "Always available locally" which will be identical to not using VFS for that folder.

In any case, you'd still need to wait till the preview gets generated on the server (as it gets generated and cached during the first request) so it takes time if there are many files. Still, fetching previews is generally faster than downloading all the files, as preview size is quite small (typically around 1MB), while a file can be 5 or 10 MB or more, depending on the format, etc.

One way to make previews show up faster is to allow fetching them for multiple files with a single /index.php/core/preview request. But this is not supported on the server. And I don't know if they have plans on implementing that in the foreseeable future.

tomasz-lasko commented 1 year ago

Ok thank you for clearing that out. So most of all now I know it is not implemented.

But anyway it would be good to tell Nextcloud Desktop Client to always download the thumbnails anyway for a particular directory tree (and make the server generate/push each thumbnail), before even Explorer asks for it (well that is now with pre-downloading the files/folders, before Explorer or any app asks for them).

PhilippSchlesinger commented 1 year ago

But anyway it would be good to tell Nextcloud Desktop Client to always download the thumbnails anyway for a particular directory tree (and make the server generate/push each thumbnail), before even Explorer asks for it (well that is now with pre-downloading the files/folders, before Explorer or any app asks for them).

Maybe it would be worth trying the speed to download previews while accessing a folder via Explorer which the server already holds pre-generated (e. g previously triggered via another client) thumbnails for.

tomasz-lasko commented 1 year ago

Maybe it would be worth trying the speed to download previews while accessing a folder via Explorer which the server already holds pre-generated (e. g previously triggered via another client) thumbnails for.

Comparing to the solution I proposed, I don't know if your solution brings less or more complexity and demand spikes.

Well I am just reporting a use case of browsing many folders, and the most wanted is that thumbnails were already there, otherwise they user can wait max several seconds for each 50-100 thumbnails to load. So we shouldn't be affected if the server is at the moment loaded or not.

My solution proposal would be to (for a chosen directory tree) pre-download thumbnails in background, it would be nice if it could be implemented in low priority (both on client and server). But I am not a Nextcloud developer, so it's hard for me to judge if it is easily implementable. Anyway, my proposed solution in theory: sounds simple & perhaps elegant (relatively simple design pattern) and at the same time, what's most important, providing thumbnails immediately when Explorer requests them.

You can mark a folder as "Always available locally" which will be identical to not using VFS for that folder.

Of course the point of my suggested solution is that you do not download 200-800 GB of photos to your harddrive, because most of them is not needed and we don't want to fill up the hard drive. Instead, the user marks "Always available locally" only to a subset of only mostly used folders. But the majority of folders should have thumbnails downloaded, so the user should mark them, in order to quickly browse the folders. And these thumbnails local cache would not fill up whole drive.

I also don't know if use case of my users is representative to world population, but if I were to need thumbnails in very many folders, I think I too couldn't wait for them to load each time.

PhilippSchlesinger commented 1 year ago

Comparing to the solution I proposed, I don't know if your solution brings less or more complexity and demand spikes.

I just proposed to empirically find out in the first place if the thumbnail generation time or the loading time is the part that takes most of the time. If one finds out that a previews for a folder with pre-generated thumbnails on the server would load fast enough for your use case, a solution could be based on that information.