jf rt transfer-files

Transfer files from one Artifactory instance to another.

Synopsis

jf rt transfer-files <source-server-id> <target-server-id> [options]

Aliases:

Arguments

ArgumentRequiredDescription
<source-server-id>YesServer ID of the Artifactory instance to transfer from
<target-server-id>YesServer ID of the Artifactory instance to transfer to

Options

FlagDefaultDescription
--exclude-reposSemicolon-separated list of repositories to exclude. Supports wildcards
--filestorefalseSet to true when artifacts already exist on the target filestore
--ignore-statefalseSet to true to ignore saved state from previous transfer-files runs
--include-filesSemicolon-separated path patterns to include. Example: folder/subfolder/*
--include-reposSemicolon-separated list of repositories to include. Supports wildcards
--prechecksfalseSet to true to run pre-transfer checks
--proxy-keyKey of an HTTP proxy configuration in Artifactory for transfer traffic
--statusfalseSet to true to show status of an in-progress transfer-files command
--stopfalseSet to true to stop the transfer-files command currently in progress

Examples

Transfer Files Between Servers

jf rt transfer-files --help

Transfer Specific Repositories

jf rt transfer-files source-server target-server --include-repos "libs-release;libs-snapshot"

Exclude Repositories

jf rt transfer-files source-server target-server --exclude-repos "temp-*;archive-*"

Check Transfer Status

jf rt transfer-files source-server target-server --status

Stop an In-Progress Transfer

jf rt transfer-files source-server target-server --stop

When to Use

Use transfer-files after transfer-config (or transfer-config-merge) to move the actual artifact binaries from one Artifactory to another. This is the second step in a full migration workflow.

Typical migration workflow:

  1. jf rt transfer-plugin-install <source-server> — Install the plugin
  2. jf rt transfer-config <source> <target> — Copy configuration
  3. jf rt transfer-files <source> <target> — Transfer all artifacts

Known Limitations

  • Requires the data-transfer plugin installed on the source Artifactory instance
  • Transfer progress is saved; if interrupted, re-running the command resumes from where it stopped (unless --ignore-state is set)
  • Large-scale transfers (millions of artifacts) may take hours or days depending on network bandwidth
  • The --filestore flag skips actual file transfer when artifacts are already present on the target's filestore (useful for shared storage migrations)
  • Performance depends on network bandwidth between source and target; use --proxy-key to route through Artifactory's proxy for controlled environments

Performance Considerations

Repository SizeExpected DurationRecommendation
< 10 GBMinutes to an hourDefault settings work fine
10-100 GBHoursMonitor with --status; ensure stable network
100 GB - 1 TBHours to a dayRun during off-peak; use --include-repos to batch
> 1 TBDaysSplit into batches with --include-repos; monitor with --status

Tip: If the transfer stalls, use --status to check progress. If it has failed, re-run the same command — it resumes from the last checkpoint. Use --ignore-state only if you want to start completely fresh.



What’s Next

For verification steps and troubleshooting, return to the Server Transfer guide.