Syncs

A Sync represents a file synchronization job between two locations (local-remote, remote-remote, local-child_site, etc). It can be scheduled, run manually, or triggered by custom logic. Syncs track their runs, status, and configuration.

List Syncs

SDK Method

Files::Sync.list

Return Object

List<Sync>

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Additional Arguments

Example Request

begin
  syncs = Files::Sync.list
  syncs.auto_paging_each do |sync|
    # Operate on sync
  end
rescue Files::NotAuthenticatedError => e
  puts "Authentication Error Occurred (#{e.class.to_s}): " + e.message
rescue Files::Error => e
  puts "Unknown Error Occurred (#{e.class.to_s}): " + e.message
end

Show Sync

SDK Method

Files::Sync.find

Return Object

Sync

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Method Arguments

ArgumentDescription
id
int64
Required
Sync ID.

Example Request

begin
  sync = Files::Sync.find(id)
  # Operate on sync
rescue Files::NotAuthenticatedError => e
  puts "Authentication Error Occurred (#{e.class.to_s}): " + e.message
rescue Files::Error => e
  puts "Unknown Error Occurred (#{e.class.to_s}): " + e.message
end

Create Sync

SDK Method

Files::Sync.create

Return Object

Sync

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Method Arguments

ArgumentDefaultDescription
delete_empty_folders
boolean
falseDelete empty folders after sync?
description
string
Description for this sync job
dest_path
string
""Absolute destination path for the sync
dest_remote_server_id
int64
Remote server ID for the destination (if remote)
disabled
boolean
falseIs this sync disabled?
exclude_patterns
array(string)
Array of glob patterns to exclude
holiday_region
string
Skip the sync if there is a formal, observed holiday for this region.
include_patterns
array(string)
Array of glob patterns to include
interval
string
If trigger is daily, this specifies how often to run this sync. One of: day, week, week_end, month, month_end, quarter, quarter_end, year, year_end
keep_after_copy
boolean
trueKeep files after copying?
name
string
Name for this sync job
recurring_day
int64
If trigger type is daily, this specifies a day number to run in one of the supported intervals: week, month, quarter, year.
recurring_days
array(int64)
If trigger type is daily, this specifies one or more day numbers to run in one of the supported intervals: week, month, quarter, year.
schedule_id
int64
If trigger is custom_schedule, the reusable Schedule used instead of the sync's schedule fields.
schedule_days_of_week
array(int64)
If trigger is custom_schedule, Custom schedule description for when the sync should be run. 0-based days of the week. 0 is Sunday, 1 is Monday, etc.
schedule_time_zone
string
Time zone for the schedule. If not set, times are interpreted as UTC.
schedule_times_of_day
array(string)
Times of day to run in HH:MM format. For custom_schedule, run at these times on specified days of week. For daily, run at these times on the scheduled interval date.
src_path
string
""Absolute source path for the sync
src_remote_server_id
int64
Remote server ID for the source (if remote)
sync_interval_minutes
int64
Frequency in minutes between syncs. If set, this value must be greater than or equal to the remote_sync_interval value for the site's plan. If left blank, the plan's remote_sync_interval will be used. This setting is only used if trigger is empty.
trigger
string
Trigger type: daily, custom_schedule, or manual
Possible values: daily, custom_schedule, manual
trigger_file
string
Some MFT services request an empty file (known as a trigger file) to signal the sync is complete and they can begin further processing. If trigger_file is set, a zero-byte file will be sent at the end of the sync.
always_write_trigger_file
boolean
falseIf true, the trigger file will be sent at the end of a successful sync even when no files were transferred.
workspace_id
int64
0Workspace ID this sync belongs to

Example Request

begin
  sync = Files::Sync.create(
    delete_empty_folders: true
  )
  # Operate on sync
rescue Files::NotAuthenticatedError => e
  puts "Authentication Error Occurred (#{e.class.to_s}): " + e.message
rescue Files::Error => e
  puts "Unknown Error Occurred (#{e.class.to_s}): " + e.message
end

Dry Run Sync

SDK Method

sync.dry_run

Return Object

nil

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Example Request

begin
  # Find the sync object by its id.
  sync = Files::Sync.find(id)
  sync.dry_run
rescue Files::NotAuthenticatedError => e
  puts "Authentication Error Occurred (#{e.class.to_s}): " + e.message
rescue Files::Error => e
  puts "Unknown Error Occurred (#{e.class.to_s}): " + e.message
end

Manually Run Sync

SDK Method

sync.manual_run

Return Object

nil

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Example Request

begin
  # Find the sync object by its id.
  sync = Files::Sync.find(id)
  sync.manual_run
rescue Files::NotAuthenticatedError => e
  puts "Authentication Error Occurred (#{e.class.to_s}): " + e.message
rescue Files::Error => e
  puts "Unknown Error Occurred (#{e.class.to_s}): " + e.message
end

Update Sync

SDK Method

sync.update

Return Object

Sync

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Method Arguments

ArgumentDescription
delete_empty_folders
boolean
Delete empty folders after sync?
description
string
Description for this sync job
dest_path
string
Absolute destination path for the sync
dest_remote_server_id
int64
Remote server ID for the destination (if remote)
disabled
boolean
Is this sync disabled?
exclude_patterns
array(string)
Array of glob patterns to exclude
holiday_region
string
Skip the sync if there is a formal, observed holiday for this region.
include_patterns
array(string)
Array of glob patterns to include
interval
string
If trigger is daily, this specifies how often to run this sync. One of: day, week, week_end, month, month_end, quarter, quarter_end, year, year_end
keep_after_copy
boolean
Keep files after copying?
name
string
Name for this sync job
recurring_day
int64
If trigger type is daily, this specifies a day number to run in one of the supported intervals: week, month, quarter, year.
recurring_days
array(int64)
If trigger type is daily, this specifies one or more day numbers to run in one of the supported intervals: week, month, quarter, year.
schedule_id
int64
If trigger is custom_schedule, the reusable Schedule used instead of the sync's schedule fields.
schedule_days_of_week
array(int64)
If trigger is custom_schedule, Custom schedule description for when the sync should be run. 0-based days of the week. 0 is Sunday, 1 is Monday, etc.
schedule_time_zone
string
Time zone for the schedule. If not set, times are interpreted as UTC.
schedule_times_of_day
array(string)
Times of day to run in HH:MM format. For custom_schedule, run at these times on specified days of week. For daily, run at these times on the scheduled interval date.
src_path
string
Absolute source path for the sync
src_remote_server_id
int64
Remote server ID for the source (if remote)
sync_interval_minutes
int64
Frequency in minutes between syncs. If set, this value must be greater than or equal to the remote_sync_interval value for the site's plan. If left blank, the plan's remote_sync_interval will be used. This setting is only used if trigger is empty.
trigger
string
Trigger type: daily, custom_schedule, or manual
Possible values: daily, custom_schedule, manual
trigger_file
string
Some MFT services request an empty file (known as a trigger file) to signal the sync is complete and they can begin further processing. If trigger_file is set, a zero-byte file will be sent at the end of the sync.
always_write_trigger_file
boolean
If true, the trigger file will be sent at the end of a successful sync even when no files were transferred.

Example Request

begin
  # Find the sync object by its id.
  sync = Files::Sync.find(id)
  sync.update(
    delete_empty_folders: true
  )
rescue Files::NotAuthenticatedError => e
  puts "Authentication Error Occurred (#{e.class.to_s}): " + e.message
rescue Files::Error => e
  puts "Unknown Error Occurred (#{e.class.to_s}): " + e.message
end

Delete Sync

SDK Method

sync.delete

Return Object

nil

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Example Request

begin
  # Find the sync object by its id.
  sync = Files::Sync.find(id)
  sync.delete
rescue Files::NotAuthenticatedError => e
  puts "Authentication Error Occurred (#{e.class.to_s}): " + e.message
rescue Files::Error => e
  puts "Unknown Error Occurred (#{e.class.to_s}): " + e.message
end

The Sync Object

Some of the methods above return a Sync object. The attributes of this object are listed below.

AttributeDescription
id
int64
Sync ID
name
string
Name for this sync job
description
string
Description for this sync job
site_id
int64
Site ID this sync belongs to
workspace_id
int64
Workspace ID this sync belongs to
user_id
int64
User who created or owns this sync
src_path
string
Absolute source path for the sync
dest_path
string
Absolute destination path for the sync
src_remote_server_id
int64
Remote server ID for the source (if remote)
dest_remote_server_id
int64
Remote server ID for the destination (if remote)
src_site_id
int64
Source site ID if syncing from a child or partner site
dest_site_id
int64
Destination site ID if syncing to a child or partner site
two_way
boolean
Is this a two-way sync?
keep_after_copy
boolean
Keep files after copying?
delete_empty_folders
boolean
Delete empty folders after sync?
disabled
boolean
Is this sync disabled?
trigger
string
Trigger type: daily, custom_schedule, or manual
Possible values: daily, custom_schedule, manual
trigger_file
string
Some MFT services request an empty file (known as a trigger file) to signal the sync is complete and they can begin further processing. If trigger_file is set, a zero-byte file will be sent at the end of the sync.
always_write_trigger_file
boolean
If true, the trigger file will be sent at the end of a successful sync even when no files were transferred.
include_patterns
array(string)
Array of glob patterns to include
exclude_patterns
array(string)
Array of glob patterns to exclude
created_at
date-time
When this sync was created
updated_at
date-time
When this sync was last updated
sync_interval_minutes
int64
Frequency in minutes between syncs. If set, this value must be greater than or equal to the remote_sync_interval value for the site's plan. If left blank, the plan's remote_sync_interval will be used. This setting is only used if trigger is empty.
interval
string
If trigger is daily, this specifies how often to run this sync. One of: day, week, week_end, month, month_end, quarter, quarter_end, year, year_end
recurring_day
int64
If trigger type is daily, this specifies a day number to run in one of the supported intervals: week, month, quarter, year.
recurring_days
array(int64)
If trigger type is daily, this specifies one or more day numbers to run in one of the supported intervals: week, month, quarter, year.
schedule_id
int64
If trigger is custom_schedule, the reusable Schedule used instead of the sync's schedule fields.
schedule_days_of_week
array(int64)
If trigger is custom_schedule, Custom schedule description for when the sync should be run. 0-based days of the week. 0 is Sunday, 1 is Monday, etc.
schedule_times_of_day
array(string)
Times of day to run in HH:MM format. For custom_schedule, run at these times on specified days of week. For daily, run at these times on the scheduled interval date.
schedule_time_zone
string
Time zone for the schedule. If not set, times are interpreted as UTC.
holiday_region
string
Skip the sync if there is a formal, observed holiday for this region.
latest_sync_run
SyncRun
The latest run of this sync