Sync files AND being able to index them?

Hi,

I had wished I would be able to prevent from asking questions about the ever-returning topic of indexed folders and iCloud, but here I am. Hoping you’ll be able to help me understand what my possibilities are.

I’d like to create the following situation with my files:

  1. available on my filesystem(s) as regular files with a folder-based structure reflected in DT
  2. synced on multiple macOS and iOS devices
  3. not be dependent on DT for access to those files on iOS and macOS

I’d like to have my DT structure mirrored on my filesystem, so I’m never dependent on having access to DT. DT offers great extra tools, but I want a file-based system to be always available for long-term compatibility. Also I want my file-based system to be available on all my devices (macOS/iOS) and therefore I use iCloud to sync my filesystem / folders, This way I can e.g. use iOS shortcuts to interact with my files.

I’m currently using DT to index a folder that is on iCloud (bare with me, I know that’s not advised), leaving me with the following situation (unless I’m doing something wrong here?):

  • Indexing a folder that is on iCloud Drive
  • When deleting a file in that folder via DT the file gets moved to DT Trash
  • When emptying the DT Trash and choosing “Remove all Items” the file is NOT removed from the original folder

So practically I can’t ‘manage’ (in practice: delete) files from my indexed iCloud folder, rendering my preferred situation useless, because I have to ‘switch’ back to Finder e.g. to manage files. I’m aware that indexing should not be done on cloud-based folders (for reasoning probably having to do with the intricacies of trying to prevent conflicts?). So I’m assuming my use case is practically ‘not supported’ and the behavior described above is intended (is that correct)? It seems that way from reading other threads:

This means I can’t basically use DT to do file management on indexed folders when these folders are actually synced iCloud folders. That leaves me with the question hopefully you can help think along: in what way can I have my files:

  1. available on my filesystem(s) as regular files with a folder-based structure reflected in DT
  2. synced on multiple iOS devices
  3. not be dependent on DT for access to those files on iOS and macOS

Some ideas are using a syncing solution (e.g. Syncthing) that DT doesn’t ‘know’ about, but that seems more hacky than I like. Wondering what other options people are using to sync and index. Thanks for helping me decide on the best way forward on this one!

Since iOS does not offer a file system in the traditional sense, these two conditions contradict themselves. iOS is not the same as macOS!

On macOS, DT stores all data as they are in the file system. Albeit in its own structure, but always accessible by finder (and other apps).

1 Like

I think I get close to your requirements using my synology NAS. Using my top level business folder as an example. I have this synced to my synology NAS on my Macs and my iOS devices through a copy on my NAS using the synology sync apps on the various platforms. So I can access all of the files directly through those apps independent of DT.

On my two Macs I index that folder in DT. DO NOT SYNC THEM THROUGH DT – THAT WILL CREATE A SYNC LOOP (which I learned the hard way a while back).

The final piece – on one of my MACs (my iMac at home) I sync the folder in DT using iCloudKit. On my iphone and iPad I sync DTTG to that folder through cloudkit.

That’s the whole thing. I think it meets all of your requirements :slight_smile:

I have no indexed files, but I maintain a backup of DT data using the Export>Files&Folder menu option
The DT structure is mirrored on my filesystem, and can be accessed without the DT app
This can be stored in the cloud for both Mac and IOS access

Thanks for all the suggestions! There seems to be something else that might be happening that might ‘solve’ my need for an alternative.

From what I found out (it seems) DT behaves differently when deleting files from iCloud folders whether they are in a shared iCloud folder or a non-shared iCloud folder. The intended behavior seems to be that files deleted via DT are supposed to be deleted from the iCloud folder (after confirming the alert) but that does not happen when the iCloud folder is shared. I’m currently investigating what happens here: Dropbox and Onedrive locations being automatically changed....effect on indexed DT databases - #26 by cgrunenberg

EDIT: testing further I can’t always reproduce the behavior, so it’s still the question why the deletion of files in one iCloud folder works, while not in another. I’ll investigate further.

Unrelated to your main question, but indexing folders located on iCloud Drive is not a problem, and is not what the DEVON folks advise against. What you don’t want to do is to locate your databases on any cloud storage due to the possibility of corruption of the database.

2 Likes

Understood - that was indeed my interpretation which wasn’t correct.

You probably already checked this, but ensure you do not have your iCloud setup to “optimize disk space”. In the Mac’s system preferences. Also note that Apple’s iCloud has a bit of a mind of its own when it will and will not sych files. Outside of control by you or DEVONthink. I have no experience with shared iCloud folders so can’t help there but to say it’s my hunch that is not related to your issue, but of course I could be wrong.

2 Likes

I wanted to write a quick answer because I’m sure I had switched that off (as is my preference + I had obviously read in other threads). But I wanted to check anyway…

And of course it was switched (back) on… I feel somewhat dumb now, but hopefully this might be part of the solution. Thanks for pointing this out again!

1 Like

Two things to be aware of…

  1. If you are indexing files in a cloud-synced location, e.g., iCloud Drive, DEVONthink’s sync engine does not sync the contents of those fles. The file syncing is left to the cloud service to handle to avoid conflicts between the two.

  2. Files indexed in cloud-synced locations will not always update your database in DEVONthink. Filesystem events are not always registered therefore DEVONthink may not be given any notification anything has changed. This is we advocate using File > Update Indexed Items with such indexed locations in DEVONthink. (This is noted in the Help > Documentation > In & Out > Importing & Indexing > Indexing and the file sytem > Updating indexed files subsection.)

2 Likes

But the contents are synced for use in DTTG right?

As the file is indexed, what you can do is: move to database (the file is then deleted from icloud) and then move to trash in Devonthink.

Yes by default.

Hi - is there any way I can “tell” DEVONthink that an indexed location is synced by another service?

I use DEVONthink to index my Obsidian vaults and I use obsidian’s own sync service which is not a traditional cloud storage service that MacOS would recognise- but I still want to avoid conflicts!

This is not possible. But one workaround might be to index the Obsidian vaults to a database which is not synchronized. Another possibility is to disable the sync location’s option to synchronize contents of indexed files, in that case it would be up to the third-party service to transfer the files from one computer to another.

1 Like

thanks - I have decided to avoid indexing obsidian in DT for now - I love the fact I can link between the two apps :slight_smile: