One-way mirror sync (with remote delete)

Well it comes up from time to time, at least here in the forums.

Feel free to open a feature request… GitHub - nextcloud/android: 📱 Nextcloud Android app

In the meantime I found a very similar feature request on github Feature Request: Add one way sync · Issue #1090 · nextcloud/desktop · GitHub that’s been there for the last 4 years. Probably mine would end up much the same way (‘use X or Y as it is WebDAV’, I am aware of it now but it is not really the answer you give users that seek to improve your product) but maybe I’ll try…
Thank you for the exchange thus far.

Reached edit limit so need to post again.

Simple, because the nextcloud client is the de facto standard tool to interact with nextcloud and it can be easily improved to match the standard of a 3rd party tool specifically for a part of nextcloud client’s functionality (WebDAV) but missing other parts like calendar or contacts sync. Having two solutions for a single service may be risky especially with two apps installed side by side.

I’m retired and now only run a small family system. My server is based on RAID-5 and is backed up daily. If I download photos from my camera directly to the cloud (and subsequently scan them) the files appear as virtual files on my wife’s laptop and my sons’ PCs. This is perfect, it takes up no local storage except when the file is being used. If the photos are loaded onto a PC or laptop then there is a local copy as well as the cloud copy. What is needed is some way to delete the local copy without sync deleting the cloud copy. Professionally the HSM systems I’ve managed allow files to be flushed off the disks to tape, this is the sort of functionality that virtual files appear to offer.

Currently my workflow to manage large files is:

  1. Copy the duplicated files from /Cloud/NextCloud/… to /Cloud/tmp/…
  2. Delete the files from local storage.
  3. Sync
  4. Move the files back
  5. set the ownership to apache:apace
  6. occ files:scan

It’s a bit of a faff on a small domestic system. Being able to force a one-way sync would, AIUI, avoid this and enable just the local copies to be deleted.

Deleting a local copy whilst keeping a cloud one would be a different use case, akin a disjoint copy. Perhaps if the above github FR that covers two scenarios got implemented it would be possible to set a disjoint status?

You keep saying that. I mean do you know for sure it’s that simple, have you actually looked at the code of the app and do you understand how it works?

Yes I realise how it works and have given it a glimplse. Given what is already in there a one way mirrored sync cannot be very complex, the workflow being:

  1. Delete the remote files that aren’t available locally anymore
  2. Queue up any local files for transfer that aren’t available remotely as you normally would.
    No, with the client aware of the remote files it isn’t rocket science to implement. It already does remote deletes and remote listing so it isn’t like there is no code basis for enhancement.

I think you’re misrepresenting what other clouds do in this case. If you look at Google Drive, Microsoft OneDrive, Dropbox, they are all two-way sync, and I don’t recall them having this feature you request.

How about you go over to GitHub and open an issue. I assure you that coming to the forum and dragging it like that will not get a new feature developed.

By the way, I did a search of the open issues for “one-way” and did not find a single one, so perhaps it’s a feature that’s never even been requested in official channels. Incessant would not seem to be an accurate term.

This is a community forum. We are all just users here. The devs drop by from time to time, but if you want to make the devs aware of something that is important to you, GitHub is the better place to do it. Of course there is no guarantee that you will get a detailed statement or that your feature request will be implemented.

Sure, no problem.

How many of those were calls that spelt backup due to the users inability to use the term actually were calls to have a one way mirror? It is difficult to describe the feature.

As for github, Just saying there is a similar request with the ability to specify which side is the golden copy. Canned response: use webdav. I only fear one that covers phone to nextcloud server one way mirror will end in the same vein. Better dismissed than not having uttered a word though.

But then, you have at least tried. In the short and medium term you will have to find another solution, anyways. And once that’s up and running, you won’t probably need a solution in the official app anymore. :wink: Or maybe you get to know the advantages of Nextcloud beeing the “golden copy” over time, and then won’t need one-way-sync at all anymore. :wink:

Anyways, my golden copy is my Nextcloud server, and therefore I can loose any of my client devices or re-install them at any time and then simply connect them to my Nextcloud server again, in order to get to my files, contacts, calendars etc…

Sure there are also a few things and apps that cannot interact directly with Nextcloud or WebDAV. One example, I’m using, is Aegis (TOTP app), from which I want to store the backup of the 2FA codes to my Nextloud. But thanks to the Android storage scope FUSE integration of the Nextcloud app, Aegis can store it’s backup directly to my Nextcloud, without even be aware that it stores the data to a remote folder.

In explaining where it came from: I was hoping on migrating non-technical users to a nextcloud stored copy of their photos from the cloud environment. They had a few complaints about their cloud storage like google photos flattening out their directory structure which isn’t the case with nextcloud. But their use of ggl photos was such that anything deleted on the phone got deleted off the cloud. One way mirrored sync provides this mechanism. But if it is dumb copy all files remotely in the camera folder but never compare if anything remotely hasn’t been deleted then it contributes to a remotely stored mess. Now the confusion why users refer to such mode as backup is simple: they expect it to cover scenarios such as physically losing or breaking a phone and having a one last good data copy. That is what a mirrored copy is for. They are fine with deleting a copy both on the phone and at sync time on the remote server. And that is mostly what ppl I know use ggl cloud for, which sadly doesn’t honour their directory arrangements, unlike nextcloud.

The solution I go for has to be simple enough to set up and use like nextcloud client which acts as a one stop alternative to the invasive cloud services. The mention of WebDAV and another client doesn’t put me off but will put off uninformed users. So currently nextcloud to them is yet another synced photo dumping ground which doesn’t delete anything unless the users go through the extra effort of removing a photo twice: in their usual gallery app (which is the de facto standard for photo management on most phones) and second time on nextcloud. Why can’t this be like their cloud setup with any deletions followed up in the cloud?

Cannot edit so replying again.
Their contacts and calendard are already covered by nextcloud so using another 3rd party app merely to one way mirror sync photos is overkill.

Again not backup needed here, merely a mirrored copy of whatever they had should they lose their phone.

Replying, unable to edit above post.
Nextcloud is ideal for it: I set up a raspberry pi server and that works reasonably well. The users can set up their nextcloud client app easily and likely in no time without much instruction when switching to a new phone. With the caveat all their photos will be dumped remotely and never deleted unless they switch completely to all photo management in the nextcloud client which they very reasonably won’t for lack of phone specific features linked to the camera.

I believe the above is a very common use case.

Yes I understand that. And especially the PhotosSync, Photo Backup, Photo Upload or whatever you want to call it has its pitfalls and downsides. But the rest of it doesn’t really work that much different than Google. Google also uses separate apps for Docs, Drive, Photos, Meet, etc

Btw, if Nextcloud should decide to offer native mobile solutions for all of that directly, I would much prefer separate apps for Photos, Contacts, Calendar, Files, etc… instead of putting everything into the “Files” app.

But at the moment it is what is, and I don’t see any major changes coming anytime soon.

Status, as of now:

  • We have the Nextcloud (“Files”) app (I call it like that, because that’s what it basically is, a Nextcloud Files client), which is working fine and is more or less on par with the Google Drive client.
  • A Google Photos equivalent partly implemented in the “Files” app, but the current feature set is of course not on par with Google Photos.
  • A Google Docs equivalent is integrated in the Files app, if you have Nextcloud Office installed on your server
  • The Google Meet equivalent is Talk, which has it’s dedicated app.
  • Contacts and Calendar rely on DAVx5 or another CalDAV/CardDAV client.

So, yeah it’s not as turn-key as logging into a new Android device with your Google account, and in certain areas it still has it’s short-commings, either feature-wise (e.g. Photos), or it relies on third-party tools (DAVx5 for Contacts, Calendar). But in terms of the basic concepts, it works very similar to Google Workspaces or M365.

2 Likes

Excellent write up should anyone want to understand what’s in store. Mind on most phones, managing photos or videos is done within the gallery/camera app, no Files needed to create/move/delete photos between folders. That is why phone based users who switch to nextcloud will be very reluctant to follow up with any local changes again within the cloud and the reason why I’m pitching for the one way mirror sync feature here.

That’s what Nextcloud is not on par, and at the same time it is what all home users want. :wink:

Google does an excelent job with Photos, and there is no real competitor out there, not even a commercial one, when it comes to provide a simple but yet powerful photo backup and album solution for non tech savy users. I must admit this product is simply ingenious. The closest commercial alternative is probably Synology Photos.

But’ that’s also what I’m talking about, when I talk about the differences of what home and business user want. The company of my girlfriend, for example, is using Google Workspaces. They don’t use Google Photos at all. Also they almost exclusively work in the browser. For the few local applications they have installed on their work computers, they use the Google Drive Client. No local backups are made. If the laptop dies and users have files stored locally, these files are gone.

Needless to say, this whole ecosystem can then also be used seamlessly on mobile, at least if you are using an Android phone.

Nextcloud will probably never be able to achieve the same semaless experience on mobile, that Google Workspacec offers on Android. The cost would be far too high. In the corporate space with their browser apps, however, they are doing very well and are on par in many areas, and they even have some unique features.

Ggl photos sets the standard but for more informed users it is culpable of ignoring users’ file management choices, flattening out directory structures remotely, not allowing to sort by anything else but date etc. I’ve heard all of those complaints, from non-techies too.

Whilst it might be difficult to become a ggl photos replacement in terms of the photo edit functionality, nextcloud has much potential in how it handles the files behind photos, already preserving directory hierarchy, allowing to sort by name, album etc. I did notice some options about handling conflicts on sync, which prompted me to suggest a key function is missing among them.

Yeah sure, different users, different needs. For me Google Photos would be good enough. I don’t use it because I want to host my data myself.

Regarding the current status of Nextcloud, I decided that the Photo Upload feature is good enough for me, at least for now. I simply delete the files in my DCIM folder manually from time to time, and then I manage / delete photos on my PC, in the browser or directly in the Nextcloud app. Sure this is far from perfect, and as I said, I certainly wouldn’t mind a better mobile integration with Nextcloud Photos out of the box, or some Android-Google-Photos-clone for Nextcloud, but honestly I don’t see it happen anytime soon. But I could be wrong, though. :wink:

Summary:

  1. Use third Party apps like FolderSync or PhotoSync (the ones I mentioned)
  2. Use a dedicated Photo solution, Immich, Photoprism, Synology etc etc etc… (each of them have their own pros and cons, of course)
  3. Open a feature request on GitHub
  4. Or maybe some third party dev from the community will develop such an app, but I’m not aware of any ongoing projects. Although, there is LesPas: GitHub - scubajeff/lespas: Les Pas, photo album app for Nextcloud user But afaik this doesn’t do what you are looking for. But maybe it’s still worth a look.

A word of comment on a few alternatives:
Photoprism - not privacy-friendly, calls home to a custom geolocation server.
Immich - not very mature, claims not production ready. Probably the closest competitor to nextcloud for off-phone storage. Not really an alternative for a mixed (non-photo) dataset.
Les pas - still syncs changes both ways like the nextcloud app. Requires folders with a rigidly defined structure. Photo only.