Thorn Tech Marketing Ad
Skip to main content
Version: 1.2.1

Transfer Jobs in StorageLink

TLDR

What: A Transfer Job runs a copy or move operation in the background with automatic retries, so you don't have to keep a browser tab open while files transfer.

Location: Click Jobs in the sidebar to open the My Jobs page.

Created: Explicitly from the Jobs page with + Create Job.

Lifecycle: Pending → Running → Completed / Failed / Canceled — failed operations retry up to 3 times by default.

Tuning (admins): Set features.transfer-jobs.* properties in /opt/swiftgw/application.properties, then restart with sudo systemctl restart swiftgateway.

Product: StorageLink by Thorn Technologies — cloud storage gateway for secure file sharing

Transfer Jobs were introduced in StorageLink v1.2.0.

Overview

A Transfer Job is a copy or move operation that runs in the background. In StorageLink, copying or moving files always happens as a Transfer Job — instead of holding a browser tab open while files transfer, you submit a job and walk away — StorageLink processes it on server-side worker threads and retries failed operations automatically.

Transfer Jobs are useful for:

  • Large files or entire folder trees that take time to transfer
  • Operations you don't want tied to an open browser session
  • Bulk copy or move work that should retry on transient errors instead of failing outright

You create a Transfer Job from the Jobs page using + Create Job. This is the only way to copy or move files in StorageLink.

The Jobs page

Click Jobs in the sidebar to open the My Jobs page, where you view and manage in-progress and completed transfer jobs. Jobs are per-user: the My Jobs page shows only the jobs you created. If another admin creates a job, it will not appear in your list.

The My Jobs page listing Copy and Move transfer jobs, one Failed and the rest Completed

The page lists each job with the following columns:

ColumnDescription
IDUnique job identifier
OperationCopy or Move
SourceOrigin path of the file or folder
DestinationTarget path
StatusPending, Running, Completed, Failed, or Canceled
ProgressPercent complete (with transfer rate and bytes transferred while running)
StartedWhen the job began processing
CompletedWhen the job finished
CreatedWhen the job was submitted

Creating a job

Click + Create Job at the top of the Jobs page to open the Add Job form. This is the standard and only way to create a Transfer Job.

The Add Job form set to Copy from Source Folder /uploads to Destination Folder /downloads

Fill in three fields:

FieldDescription
OperationCopy (leave the source intact) or Move (remove the source after transfer).
Source FolderWhere the files come from (e.g., /uploads). Use Browse to pick it.
Destination FolderWhere they go (e.g., /downloads). Use Browse to pick it.

Click Create, and the job appears in the list.

Folder operations

When the source is a folder, StorageLink tracks the work as a parent job with one child job per file. You can monitor overall progress on the parent job and per-file status on the children, which makes it easy to pinpoint exactly which file failed in a large transfer.

Viewing job details

Click any job in the list to open its Job Details page, which reports how much data moved and how fast.

The Job Details page for a completed Copy job, showing the Overview fields and a Child Jobs table with one row per file

The Overview section shows:

FieldDescription
OperationCopy or Move.
Source Path / Destination PathOrigin and target of the transfer (e.g., /uploads to /downloads).
Bytes TransferredHow much data has moved so far (e.g., 4.19 MB).
Bytes TotalThe total size of the transfer (e.g., 4.19 MB).
Transfer RateThe speed of the transfer (e.g., 6.16 MB/s).
Start Time / Completion TimeWhen the job started and finished.
Status / Completion PercentageCurrent state and overall progress.

The Child Jobs table lists one row per file, each with its own Bytes Transferred, Bytes Total, and status — so for a folder copy you can see exactly which files transferred and how large each was. In the example above, copying /uploads to /downloads moved three files: a 4.19 MB PDF, a 307 B CSV, and a 206 B text file.

note

Bytes Total and Transfer Rate are only meaningful once data actually moves. A job over an empty folder still completes successfully, but reports 0 B and no rate.

Job lifecycle

A job moves through the following states:

StatusMeaning
PENDINGQueued, waiting for a worker thread.
RUNNINGIn flight. Status shows transfer rate and bytes transferred.
COMPLETEDFinished successfully. Records are retained for one year by default.
FAILEDExhausted all retries. Review the per-file error messages to diagnose.
CANCELEDA user or admin canceled the job mid-flight.

Automatic retries

Failed operations retry automatically up to three times by default before the job is marked FAILED. The features.transfer-jobs.max-retry-count=3 application property controls this count.

Completed job retention

First, remember that jobs are per-user — the My Jobs page shows only your own jobs, so a job you don't see may simply belong to another user rather than having been removed. Otherwise, completed job records are retained for one year (features.transfer-jobs.completed-job-retention-days=365) by default, then removed by the cleanup job; increase that property to keep them longer.

Tuning Transfer Jobs (administrators)

Transfer Job behavior is configured through application properties in the configuration file (these settings are not exposed in the Web Admin Interface):

/opt/swiftgw/application.properties

After editing, restart the StorageLink service:

sudo systemctl restart swiftgateway
PropertyDefaultPurpose
features.transfer-jobs.worker-thread-count10Number of concurrent worker threads. Changing this requires a service restart.
features.transfer-jobs.completed-job-retention-days365How long completed job records are kept before cleanup.
features.transfer-jobs.max-retry-count3How many times a failed operation is retried before being marked failed.
features.transfer-jobs.cleanup-interval-hours6How often the background cleanup job runs.
tip

Not sure how to edit the properties file from the terminal? See Editing Files on Linux (nano & vi).