@dae Would you welcome a PR that enables synchronization to third-party services like Google Drive/Onedrive/Mega/etc.? The work I imagine that you would have to do (besides reviewing the PR, obviously) is 1) set up the feature in AnkiMobile and 2) set up OAuth apps for each respective cloud platform.
Implementing such a feature across the ecosystem (there is also AnkiDroid) is a major endeavour. It would likely took months (if possible at all due to restrictions imposed by the platforms) not only from the technical side but also regarding documentation and communication. It will likely result in more support queries that can’t be resolved, as third-party platforms are involved. What would be the benefit for users? Those who are interested in individual sync solutions can host a sync server.
Source, for any of these claims?
From what I have seen, most of the support queries that involved accessing the Ankiweb storage was about restoring backups and such. Why shouldn’t these tasks, if the user so wishes, be delegated elsewhere?
Self-hosting anything is already hard enough for the normal user, and in the case of Anki it comes with a lot of quirks.
It’s very hard to claim, at least in good faith, that the complexity for a normal user would be the same when connecting Anki to their Google drive and self-hosting their own sync server.
I think there’s actually way more work to be done on the sync server’s side, than on this theoretical suggestion. None of these things (documentation, support, etc.) even exist for hosting sync servers, beyond a few sentences in the manual.
Another option is syncing through Git/VCS, which would be pretty awesome if it was implemented. I imagine it would require significant architectural changes, but would enable so many possibilities (collab on same deck, undo very old actions, etc.) and this is something you can choose to self-host or just use Github for.
I have only found this thread on it: Reddit - Dive into anything
Regarding the implementation in the Rust backend, I think the “git2” crate provides Git bindings (although said to be incomplete?).
Don’t know about others, but keeping all my data in one place would be nice (Gdrive). Most of us already have too many accounts on different websites. But that’s the thing, I have no idea how to use a sync server Anki already provides.
My only concern is a potential drop in the number of people wanting to share decks they’ve created (in AnkiWeb).
Anki would have to take into account a number of special features of the various services, in particular the total storage available to the user in their tariff (all services have restrictions in their free tariffs), restrictions with regard to the transfer volume (Mega), the maximum number of possible clients (Dropbox), the maximum file size when uploading (Box), …
This is certainly not done in days or weeks.
Sounds like this can benefit from the work being done on collaboration platforms:
Yes, indeed. And I think Git syncing would align much better with the whole collaboration platform thing.
Also, obviously either alternative (drive sync or VCS/Git sync) would take a significant amount of time to implement. That is known. Question is, where should this time be placed? With drive sync, dae would have a lot of work to do with the third-party integrations (OAuth, limits as mentioned, and whatever). In general, undertaking this task will mostly involve gated-off work where the community cannot be of much use. Whereas with Git sync, 1) we can help the git2 community implement features in the crate, that we might need for this whole thing and 2) the results are just so much more better (version control, collaboration, dont need to be dependent on Google/Microsoft/etc.)
A long time ago, Anki used DropBox for storing media files. It was not a great user experience, and there were problems when DropBox made changes. It was this bad experience that motivated the introduction of built-in media syncing.
As for syncing of cards/notes/review history, a block-storage service is a bad match for that, as the entire collection needs to be transferred each time a change is made.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.