Some file systems might contain additional hidden data within them. For Windows filesystems, this data is called "alternate streams" (alt streams), while Mac and Linux based OS call it "extended attributes" or xattrs. Both are referenced as xattrs below for simplicity.
Agent can sync xattrs according to Streamslist file, i.e. all listed xattrs are going to be synced, while all others are not.
Starting with Resilio Connect version 2.8.0 syncing of the listed xattrs is disabled by default. To enable it back, change option "Synchronize extended file attributes" in Agent profile.
The Streamslist is stored in the root of sync share in hidden .sync directory. This is a regular text file, and can be modified - some lines added, some lines removed or commented out (with #).
Default StreamsList file contains the following xattrs:
- com.apple.metadata:_kMDItemUserTags
- com.apple.ResourceFork
- com.apple.metadata:kMDItemFinderComment
StreamsList file uses same syntax as IgnoreList.
Cross-platform xattr syncing
There are numerous limitations that do not allow xattrs to sync easily between platforms. Here are some examples:
- Windows: alt streams are not supported on FAT32
- Linux: xattr names MUST start with namespace (.used, .system, etc.) and cannot store more data than 1 filesystem block (usually 4Kb)
- Mac: xattrs are limited in size
When Sync cannot store data in xattr (or in alt stream on Windows), it will create a stub file in .sync\Streams service subfolder and store the name and content of the xattr there. So, even if one of peers cannot store xattrs properly, it is capable of propagating xattrs to other peers.
xattrs and IgnoreList
Xattrs cannot be managed by IgnoreList. If you want to stop some xattr from being synced - simply remove it from StreamsList.