Skip to content

Alt streams and xattrs

Some file systems can contain additional hidden data. In Windows file systems, this data is called alternate streams (alt streams), while macOS and Linux-based operating systems refer to it as extended attributes (xattrs). For simplicity, this guide refers to both as xattrs.

Synchronizing xattrs

Agents synchronize xattrs listed in the StreamsList file, located in the .sync folder.

xattrs synchronization is disabled by default. To enable it, change the Synchronize extended file attributes option in the Agent profile.

Default StreamsList entries

The default StreamsList file contains the following entries:

com.apple.metadata:_kMDItemUserTags
com.apple.ResourceFork
com.apple.metadata:kMDItemFinderComment

The StreamsList file uses the same syntax as IgnoreList.

Cross-platform xattr synchronization

There are numerous limitations that do not allow xattrs to synchronize easily between platforms. Here are some examples:

  • Windows: alt streams are not supported on the FAT32 file system.
  • Linux: xattr names must start with a namespace (.used, .system, etc.) and cannot store more data than 1 filesystem block (usually 4 KiB).
  • Mac: xattrs are limited in size.

When Resilio cannot store data in xattr (or in alt streams on Windows), it will create a stub file in .sync\Streams service subfolder and store the name and content of the xattr there. This way, even if one of the peers cannot store xattrs properly, it is capable of propagating xattrs to other peers.

xattrs and IgnoreList

xattrs cannot be managed via IgnoreList. If you don't want to synchronize specific xattrs, remove them from StreamsList.

Synchronizing macOS color labels and Finder comments

Not supported by macOS

Synchronizing color labels and Finder comments is not natively supported by macOS. While Resilio is capable of accessing and synchronizing this data, use this feature at your own risk. Note that the suggested workaround is applicable to Synchronization Jobs only.

To allow Agents to synchronize color labels and Finder comments:

  1. Enable synchronization of extended attributes in relevant Agent profile (must be enabled for all Agents in the Job).
  2. Edit the StreamsList file on all macOS peers and ensure it synchronizes extended attribute called com.apple.FinderInfo.
  3. Allow synchronization of the .DS_Store file by either removing it from default IgnoreList or whitelisting it.
  4. Recreate the Job that you want to synchronize color labels and Finder comments.

Known issues related to this method of color labels and comments synchronization:

  • The .DS_Store file contains comments for all of the files in a single directory. Therefore, editing comments in the same directory on two different machines may cause one comment to be discarded.
  • Finder app does not update comments automatically after synchronization and it may take some time for them to update (in some cases, relaunching Finder may be required).
  • Non-standard labels may not be synchronized.
  • Color Finder tags don't appear in a TSS folder; this is a known limitation.