The destination filtering mechanism let you select a default behavior for every files and more specifically at publish time the volumes that will be delivered.
A general boolean switch syncEverywhere
in rsyncGlobalParameters
tells the default behavior of the synchronization for every files:
{
"_id": "rsyncGlobalParameters",
"syncEverywhere": true
}
true
will synchronize the files everywhere by defaultfalse
disables synchronization by defaultThe default behavior can be overridden for each file, setting the syncEverywhere
key to the desired boolean
value directly on the files' records:
{
"_id": "/filepath",
"origin": "site1",
"syncEverywhere": false
}
This won't synchronize this specific file anywhere. You can then specify the sites that will receive the file using the sync_<sitename>
boolean switches:
{
"_id": "/filepath",
"origin": "site1",
"sync_site4": true,
"syncEverywhere": false
}
Using the same way, you can remove a site from the expected destinations specifying false
in the sync_<sitename>
key:
{
"_id": "/filepath",
"origin": "site1",
"sync_site4": false
}
This will synchronize this file on every sites but site4.
The tracker has 2 operations /api/listup
and /api/listdown
to evaluate and communicate to the agents the next elements to transfer. Get 10
elements to upload from source
to target
:
https://trackername.syncplanet.io/api/listup/source/target/10
Get 10
elements to download from source
to target
:
https://trackername.syncplanet.io/api/listdown/source/target/10
Depending on your synchronization setup, some sites may behave like hubs to other sites:
site1 -> site2 -> site3
This means that the site2 must get a file in order to transfer this file to site3. Therefore you must set the keys accordingly.
The mechanism was described in this issue.