One-way mirror sync (with remote delete)

I’ve just opened an account to ask whether the android client can be improved by adding a one way sync, including a remote delete feature as soon as files are removed locally.

There are a couple of reasons a one way sync with remote delete if a file got deleted locally makes sense:

  1. Nextcloud client being touted as a replacement for sync services from google/m$/samsung/etc.
  2. Google photos or other services having one way sync built in and thus there being a reasonable expectation from users for nextcloud client to work in a similar way.
  3. Taking account of the fact most users enable sync in the android nextcloud client for photos/movies sync chiefly. Such media tend to be moved around e.g. from the camera folder to a more specific one, deleted altogether or just moved around as the user wishes.
  4. Without a one way sync, the nextcloud side will contain multiple copies of a photo or movie as soon as users move those around, the end result being a mess of files on the remote end that should have got deleted when the user removed them or moved them elsewhere. That way, the nextcloud client doesn’t parallel commercial services in terms of having a mirrored copy of whatever is available locally.
  5. Enabling a way to delete data that shouldn’t be stored anymore remotely, without the extra hassle of manual deletion.
  6. Missing one way sync contributes to unnecessary disk space usage remotely by files already moved or deleted locally that isn’t reflected in the local file system.

It doesn’t sound like a tall order to enhance the client with the one way sync option, irrespective of there being some alternatives that are unwieldy to set up such as rsync or rclone. Let’s give the users a choice for a folder to be one way sync’able if so they desire. Copy everything to the remote end without accounting for files moved/deleted will likely irk first-time users that have been promised nextcloud can act as a drop in replacement for a commerial service (or parts of it anyway). Sooner or later, similar queries will be made by users that find one way sync missing, given their cloud servicws experience.

The nextcloud client on android (and ios) is the natural place to look for a one way sync feature, so would it be possible to add it? In the client’s interface it would be yet another field to pick when setting up auto copy to the nextcloud server.

There isn’t really much of a use case for a one-way sync. I think most people who ask about that are trying to use it as backup software, which it is not.

I would also point out that there is little functional difference between a one-way sync and a two-way sync where you only make changes on one side.

I can’t speak specifically to the Android app since I don’t use it, but the iOS app doesn’t do this. It remembers which photos it has already uploaded and doesn’t upload them again if you move them server side.

I agree, a platform like Nextcloud really needs one way sync to be a competitive and complete solution.

You defines excactly which folders and paths to include in the automatic upload function. Just dont add other than the desired locations. There is then also a Nextcloud app that will periodically scan for identical files which can be set up to remove duplicates. There is numerous ways to do excactly what you asks. It all depends on how well you understands your device and the apps you has (which apps stores what where).

1 Like

I assure you there is. Namely the people who have been using commerial services for their photos and expect their files to be handled similar to a cloud service where moving or deleting a file locally triggers a remote deletion or moving the file within the scope of directories under its control triggers remotely: 1. deletion in the source directory and 2. creating it in the destination directory. By move/delete locally I mean doing so in the local file system and outside of the nextcloud environment/gui/command line. Bottom line is keeping no extraneous copies of files deleted so that the remote side mirrors whatever the user added locally as source to its scope. No backup is mentioned here.

Please do not confuse a remotely mirrored directory copy with a backup. For all intents and purposes, backup requires a regular disjoint copy and involves a retention policy which is not even mentioned here.

He doesn’t, but many users that ask for this feature do :wink:

Google Photos isn’t just remotlely mirrored directories either. It’s a little more complex than that.

But if you need simple one-way-folder sync, there is actually an app for this: https://play.google.com/store/apps/details?id=dk.tacit.android.foldersync.lite

There is also one specifically for photos: https://play.google.com/store/apps/details?id=com.touchbyte.photosync

Disclaimer: I haven’t used both apps for years, so I can’t comment on how well they work today.

To give users the benefit of the doubt, I wouldn’t assume all will have a thorough understanding of the term backup. If they use it in the sense of a mirrored copy. Commercial services like googles will also happily wipe photos remotely if removed locally so theirs doesn’t count as backup either, yet many users will incorrectly call it thus.

Complexity boils down to the ability to keep a mirrored directory enviroment remotely. I do not ask for suggestions for other apps but for the enhancement to allow for mirroring of a local directory to the nextcloud android client so other apps need not be used.
Word of caution: using two apps to sync files in two different ways spells disaster so if most users start off with the official client, let’s make sure their experience is similar to what a commercial service allows for.

Adding another sync solution is bad enough. To find out nextcloud client out of the box is copy only is bad. To have to seek support for a primary feature from many commerial clouds is bad press.

Adding a tickbox to enable a remote mirror, often mistaken for a backup by users lacking a better term, (‘one way sync with remote delete’) is doing the right thing. Especially that it has been mentioned many users expect it, without going for an intricate two (or more) client solution.

The nextcloud client is great but such quirks make it rough around the edges. First time users are quite right to find it odd. Devs, please listen to your users, making incessant calls for a mirrored remote copy (‘one way sync’ or casually ‘backup’) function in the official client.

1 Like

Yes. But there is also an option to free up space locally, without deleting the photos in the cloud.

The problem is that there are many more people who are good at talking than people who can do the actual work. :wink:

I would love to have a “Google Photos like” app that is completely open source and works seamlessly together with the Nextcloud Photos app or Memories. Unfortunately, no one has developed an app like that yet, and I don’t know how to program, so the only thing I can do is suggest alternatives, because the solution we want does not exist at the moment, and won’t come out tomorrow.

I think a lot of people who like to have all these things do underestimate how much effort it takes to develop and maintain such an app. Also these are typical home user features, but the home user market is not the market Nextcloud GmbH does earn money with, and therefore these features are mainly community driven.

2 Likes

It is immaterial to the feature discussed. The one way mirror feature does the reverse: delete locally results in a delete remotely. A remote delete will trigger copying again, to maintain a mirrored status with the local golden copy. A directory mirrored remotely takes the same amount of space as a local one (all other things being equal). So that’s that. No benefit to mentioning features that have nothing to do with the one at hand.

Yes I appreciate the suggestions, but sadly it has its risks, discussed above, and does not bring us any closer to enhancing the original client. Calling for a feature is the least one can do. No expectation on delivery but I’m reading on github Feature Request: Add one way sync · Issue #1090 · nextcloud/desktop · GitHub it has come up years ago and not been added since. Devs are entitled to ignore those for any reason, however.

Why such a primary functionality is missing leaves me wondering if it isn’t company politics behind it (e.g. ‘we won’t offer it in the official client because users tend to mistake it for a backup without an understanding of the term and will sooner or later complain about lost data e.g. when mistakenly delete a photo locally’ but wouldn’t a warning (‘Please tick I have been warned’) about how a one way mirror works suffice?).

No but it would upload files again, that you removed or moved around on the remote location, what would cause a mess :wink: Maybe you shouldn’t have written One Way Sync in the title. Because a One Way Sync does exactly what you describe here, a mirror between two directories. Commercial services like Google Photos do it more sophisticated, it’s its own little eco-system that was specifically designed to synchronize and manage photos. It’s not just a mirror to Google Drive.

But yes I agree that both are not real backups. But that was never the point here. @KarlF12 mentioned that as a side note, because there are many people who do confuse synchronisation with backups. You’re not one of them, we know that now.

The only thing that brings us closer to such a solution, is starting doing actual work. But I admint that I can’t do it either

As I said, it’s not a feature that businesses need and therefore priority is rather low. Nextcloud GmbH is not Google or Microsoft, who can afford to hire a dedictaed team that does nothing but maintain a photo synchronization solution.

Now this is an interesting statement. Money makes the world go around, eh?

Agree with the first statement. Disagree with the last one. No expectatition to maintain, merely add a simple (granted, in my view) option at a convenient time. Not much a user can do than ask for it. Adding the option does not involve things that aren’t already known to the client such as what files are available remotely. Just a matter of priority (and likely money) like you said. Not high enough on the devs’ agenda is convincing.

I realise complexity might be greater but that isn’t the goal or we will lose sight of the enhancement change requested here. No mention of what happens to the deleted photo (‘lost or moved to the bin?’). Only a one way mirror option for the sake of a single goal.

Mine is just a humble request, no expectation on delivery, merely some argument to back it. I think all has been said on the subject.

That is expected. In the one way mirror set up, the remote side is not expected to be modified. Any remote side changes are expected to be discarded during a sync with the local golden copy. That way, users have an identical copy of whatever is available locally (some mistakenly choosing to call it backup - so a warning is needed what a one way mirror does and does not do). In this set up, all changes are only ever really made on the local end only, i.e. at the one and only golden copy. The remote side merely picks up the local changes and discards any differences from the local golden copy, no more, no less.

A question remains how best to call the option, certainly not a backup, a one way mirror sounds about right but this may remind some users of a RAID term so there might be a better one.

…but then then you should never log into the webui of Nextcloud either, and neither should you synchronize the same folder with more than one device. Also what your you’re describing is not at all consistent with the concepts of how any of the commercial services like M365 or Google Workspaces work, and these are specifically the services Nextcloud tries to compete with.

But sure, you can use Nextcloud like this, if you really want to, but then you have no other choice, than using third party apps, at least for now.

Btw, especially if you are looking for something specific to Photos, it might also be worth looking at dedicated solutions outside of the Nextcloud eco-system. There is for example Immich, which is basically a self-hosted Google Photos clone. GitHub - immich-app/immich: Self-hosted photo and video backup solution directly from your mobile phone.

Nothing stops you from logging in.
Yes one folder is meant to be coming from a single golden copy.

Yes this is consistent with how you can set up a cloud. And there are reasons for doing so, e.g. to make sure you do not have to do your housekeeping twice (locally and again remotely). Most users use a single phone linked to a single cloud service. Those that own and use more than one device, more than anyone understand the mess that ensures with having two distinct sets of copies sent to a single location. So no, a mirrored one way synced copy is assumed for 1 device. You may have two or more separate directories per each device, each being a mirrored copy of a local one residing on each device.

Having copy-only folders without the ability to keep track of local deletions remotely is severly limiting. Nextcloud client isn’t a fully fledged photo manager, a vendor’s app does a better job, nothing beats it performance-wise, and will be used by most users who have opted out of ggl photos. Now, to enable some form of keeping a remote copy much like what users can have in ggl photos you need a one way mirror, not a copy-only dumping ground, which isn’t preferable.

One key thing nextcloud android client has over ggl photos has is preserving the directory structure. It is short just the one way mirror feature to make it a perfect drop in replacement for a cloud hosted photos service.

Nextcloud is fine, quite mature and best there is for most users capable of setting it up. If only it weren’t for the one way mirror sync option missing from the client.

Improve the best product there is, not shoot for niche software that isn’t as likely to be developed at a single developer’s whim as nextcloud. I wouldn’t suggest users go for low popularity products that may have a feature but listen to them (devs reading this?) to improve what is already a quality piece of software.

Yeah I get it now. But Nextcloud doesn’t just want to be a modern alternative to an FTP Server. :wink: Nextcloud, and also the commercial services like M365 and Google Workspace, are much more than that. They are collaboration platforms and actual work environments, with integrated office solutions, email, calendar, chat, video calls etc… Most of the effort of the core team goes in to further developing these features. Because that’s what it was designed for. And yes, that’s also where the money comes in.

Also why waste rescources on things that already exist. Just use the third party WebDAV client that fits your needs best, and call it a day. That’s the beauty of open standards. You are not dependent on one vendor offering you a solution for your specific use case. You can use any existing app that supports the standard, which in this case is WebDAV.

One way mirror sync =/= ftp server, please do not make such comparisons.

Doesn’t it want to be an alternative to ggl photos that is part of the ggl ecosystem? I think it does, given you can manage photos in there, albeit never as well as with a phone vendor’s app.

Users pick and choose which part of nextcloud they want, regardless of what is available. Those that expect an alternative to ggl photos may be in for a disappointment due to the shortcoming of the auto copy module.

Why NOT enable the one way mirror sync option that is often mistakenly asked for by users as a ‘backup’ is puzzling. I would skip the PR talk what nextcloud aspires to be, it’s not the place. Just consider that the majority of user disappointments will never be reported here for users lack of interest, so those multiple requests for the same thing from users with an initiative matter greatly. Please continue to offer alternatives as you do but do not dismiss user requests as unjustified or under the ‘nextcloud is not backup’ moniker.

Consider user feature requests are vital as feedback to improving a product and with sufficiently high numbers of similar reports often matter far more than what developers see as vital.

This was discussed over and over again on Github and also here in the forums. If you want official answers, search the GitHub issues and older forum posts. Search specifically for answers and comments from the user “Andy (Andy Scherzinger)”. He’s one of the devs of the Android app and director of engineering at the Nextcloud GmbH. The forum is primarily there to help other users and find solutions with the existing resources. Feature requests are better discussed on GitHub

1 Like

This is new to me. If implementing one way mirror sync is out of the question, can there be a straightforward answer in a sticky thread so that the many users requesting it (under ‘backup’ or whatever name) do not waste their effort making their case?

I believe mine are very reasonable arguments.

I will check the developer’s posts but mind it might be an idea to have a pinned thread about the direction the app is forbidden from going like ‘we won’t implement X or Y’. Especially for the sake of users who think here is the place to raise such and such.