For most large uploads, use rsync over SSH. It encrypts the connection, shows progress, keeps a partial file when interrupted and can avoid sending data that is already synchronized when you run the command again. Use scp for a simple one-time copy, SFTP or rclone when you need an interactive or tunable workflow, and object-storage staging when the direct computer-to-VPS route is unreliable or several servers need the same dataset.
For this workflow, Antihost Linux VPS provides self-managed Linux servers with full root access, AMD Ryzen 9 9950X3D processors, NVMe storage and locations in the USA East, Netherlands and Ukraine.
As an Amazon Associate I earn from qualifying purchases.
Choose the transfer method before you start
The right method depends less on the nominal file size than on what happens if the connection drops, whether you will repeat the transfer, and whether a third-party storage service is acceptable. A 100GB game build, mod archive or backup that takes hours to send needs a different workflow from a small one-off upload.
| Method | Best fit | What happens after an interruption | Setup and control |
|---|---|---|---|
| rsync over SSH | Most large uploads and repeated directory synchronization | Keep the partial file with --partial or -P, then repeat the same command; already synchronized data can be skipped |
Command-line tool using the VPS’s SSH service |
| scp over SSH | A simple one-off file copy | Less convenient for repeated synchronization or fine-grained resume behavior | Very simple command; no separate transfer configuration |
| SFTP or rclone SFTP | Interactive transfers, a managed SFTP endpoint, or tunable concurrency | Rclone provides retry controls; resume behavior depends on the operation and server configuration | Rclone requires a configured remote; SFTP runs over SSH v2 |
| Object-storage staging | An unreliable direct route, multiple VPS destinations, or a job that must continue without your laptop | Upload to staging, then pull to the VPS independently | Requires storage-account setup and a check of retention, egress, account cost and geographic placement |
All of these approaches can use an encrypted SSH transport when the endpoint is your VPS. The practical differences are resume behavior, directory synchronization, throughput on high-latency links, integrity checking and whether data passes through a third-party service.
#1 Best Overall
- Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Prepare the VPS and your workstation
Do these checks before launching an hours-long transfer. They prevent the most common failures: writing to a directory your account cannot use, filling the VPS disk, or discovering that a partial upload is not the file you intended to deploy.
1. Verify SSH access and the destination account
Log in with the same account that will own or deploy the uploaded files. Use an SSH key rather than a password where practical, and use a restricted account when the deployment design permits it. The account must be able to write to the destination directory.
2. Create a deliberate destination directory
Choose a path such as /srv/uploads/ and make sure it is owned by, or writable by, the deployment account. A transfer can authenticate successfully and still fail when the remote process cannot create the destination file.
Free tools Windows power users keep installed
One-click scans. No signup required.
3. Check free space on the VPS
Run:
df -h
Check the filesystem that contains the destination, not just the total capacity shown by your hosting panel. Leave room for the completed file, any partial file, temporary processing and the application that will consume the data. Confirming space before starting is especially important for a one-off scp transfer, which does not give you rsync’s synchronization workflow.
4. Record the source file and, when needed, its checksum
Keep the original until the remote copy has passed both a checksum comparison and any application-specific validation. For an important build, backup or game asset archive, calculate a SHA-256 checksum on the workstation:
sha256sum ./large-file
After the transfer, run the same command against the remote path and compare the complete hexadecimal value. A matching checksum confirms that the bytes arrived unchanged; it does not by itself prove that the application can read the archive or that its permissions are suitable.
Why rsync over SSH is the default
rsync is the strongest general-purpose choice when the VPS has SSH access and rsync is installed. It combines an encrypted SSH connection with progress output, partial-file retention and synchronization behavior that is useful for both a single large file and a directory of game-server assets.
Rank #2
- Easily store and access 5TB of content on the go with the Seagate portable drive, a USB external hard Drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
The recommended command
rsync -avP --partial --info=progress2 ./large-file user@VPS_HOST:/srv/uploads/
-aenables archive-style copying, which is useful when copying a directory tree and preserving the attributes rsync handles in archive mode.-vprints the files and operations being processed.-Pcombines progress output with partial-file retention. The explicit--partialin the example makes the retention requirement clear even if you later change the progress option.--info=progress2displays overall transfer progress rather than only a per-file line../large-fileis the local source. Replace it with the actual path, taking care to quote paths that contain spaces.user@VPS_HOST:/srv/uploads/identifies the SSH account, host and destination directory.
Resume after a disconnect
If the connection drops, run the same command again. The retained partial file gives rsync information about what is already present, and rsync can avoid retransferring data that is already synchronized. Do not rename the partial destination between attempts; keeping the same source and destination is what lets the next run recognize it.
The command is also suitable for repeated deployments. If a directory contains a new build, changed configuration or updated downloadable content, rerunning rsync can transfer only what needs to be synchronized instead of copying every unchanged file again.
Copying a directory: the trailing-slash decision
Use the trailing slash deliberately. In a command such as:
rsync -avP --partial --info=progress2 ./build/ user@VPS_HOST:/srv/uploads/
the contents of build are placed inside /srv/uploads/. Without the trailing slash:
Recommended Free Tools
rsync -avP --partial --info=progress2 ./build user@VPS_HOST:/srv/uploads/
the build directory itself is copied, producing a destination such as /srv/uploads/build. Decide which layout your game server or deployment script expects before you start; a technically successful transfer can still appear “missing” when you look in the wrong directory level.
When rsync is not available
The remote VPS needs an rsync installation for rsync-over-SSH transfers. If you cannot install it or the endpoint exposes only SFTP, use scp, an SFTP client or rclone’s SFTP backend instead. Do not replace a failed rsync attempt with a different destination path until you have identified whether the failure was authentication, permissions, disk space or the absence of rsync.
Use scp for a straightforward one-off copy
scp is easy to understand when you have one file, enough free space and no need for repeated synchronization. It runs over SSH, so the transfer is protected by the SSH connection used to reach the VPS.
Rank #3
- Easily store and access 1TB to content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop. Reformatting may be required for Mac
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
scp -o Compression=no ./large-file user@VPS_HOST:/srv/uploads/
The explicit Compression=no setting avoids asking SSH to compress a large file that may already be compressed, such as a ZIP, tarball or game distribution archive. Whether compression would help depends on the data; this command makes the behavior predictable rather than assuming it will improve throughput.
Scp is less convenient than rsync for repeated synchronization and fine-grained resume behavior. If an hours-long copy fails, you may need to restart it rather than have rsync reconcile the partial destination. Confirm free space with df -h before starting and keep the source until you have verified the remote checksum.
Use SFTP or rclone when you need a more flexible client
SFTP is the Secure (or SSH) File Transfer Protocol and runs over SSH v2. It is a useful fit when you want an interactive file-transfer client, when a provider exposes a managed SFTP endpoint, or when you need rclone’s retry and concurrency controls.
Interactive SFTP
An interactive SFTP client lets you connect to the VPS, change directories and upload selected files without constructing a separate command for every path. The exact interface varies by client, but the operational checks remain the same: confirm the remote working directory, verify write permission and check available space before sending a large object.
Configure rclone’s SFTP backend
Start by creating a remote named vps:
rclone config
Choose the SFTP backend and enter the VPS host, SSH user and authentication details. Rclone’s SFTP backend also supports SFTP providers such as Hetzner Storage Box and rsync.net. A remote name is local configuration; it does not create a directory or account on the VPS, so verify the path you intend to use.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Copy a file with retries and progress
rclone copy ./large-file vps:/srv/uploads/ --progress --retries 5 --low-level-retries 10
--progress displays transfer status. --retries 5 controls high-level retry attempts, while --low-level-retries 10 controls lower-level retries. These options improve recovery from transient failures but do not fix a wrong password, a full filesystem or a destination that the account cannot write.
Start with the documented SFTP defaults
Rclone documents a 32 KiB default SFTP payload and exposes --sftp-concurrency, --sftp-chunk-size and concurrent-write controls. Normally rclone uses concurrent writes to improve performance, especially for distant servers. Begin with the defaults on the specific VPS and network path, then change one setting at a time only after observing the transfer.
Rank #4
- Easily store and access 4TB of content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Larger packets or aggressive concurrency are not automatically better. Rclone’s SFTP documentation warns that oversized settings can cause EOF errors, connection losses or corruption on servers that do not support them. If a tuned transfer becomes unreliable, return to the defaults before changing anything else.
Limit bandwidth when the upload competes with other traffic
Rclone documents this example:
--bwlimit 10M
That setting limits upload and download traffic to 10 MiB/s. Use a limit when a game server, remote desktop session or other users share the same connection; remove or adjust it only when the link can handle the additional load.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Stage through object storage when the direct path is unreliable
Sometimes the best route is not workstation to VPS. If the local-to-VPS connection repeatedly drops, if a laptop cannot stay online for the entire upload, or if several VPSs need the same dataset, copy the file to object storage first and let the VPS pull it from there.
Two-stage workflow
- Upload the file from the workstation to an object-storage bucket or another staging backend.
- From the VPS, copy or pull the object into the final destination.
- Verify the checksum at the destination and run the application-specific validation.
- Delete the staged object only after every required VPS has completed its download and you no longer need the recovery copy.
Rclone supports local storage, SFTP, Amazon S3, Backblaze B2 and many other backends, so the same tool can participate in both legs. Its S3 documentation describes multipart uploads for files above the provider’s upload cutoff and automatic chunk-size adjustment to stay below the provider’s part limit. The provider still controls its own limits and billing.
Costs and placement to check
- Account or storage charges for keeping the staged object.
- Egress charges when the VPS downloads it.
- Retention rules and any automatic deletion policy.
- Geographic placement and the resulting latency or transfer path.
- Whether the provider’s multipart and part-count limits accommodate the file.
Staging adds a service and another copy to manage, so it is not the default for a healthy direct SSH route. It becomes attractive when it separates the long-running transfer from an unreliable laptop session or lets multiple servers pull the same immutable build.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Make an interrupted upload recoverable
Resume behavior is a workflow, not a single switch. Use the following sequence when a transfer stops halfway.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
- Leave the source file unchanged and do not delete the remote partial file.
- Check that the VPS is reachable over SSH and that the destination filesystem still has space with
df -h. - For rsync, rerun the original command with
-Por--partial. - For rclone, rerun the copy command with its retry options and inspect the error if it fails repeatedly.
- For scp, treat the copy as a one-off operation with limited resume convenience; if restarting is unacceptable, switch to rsync or rclone for the next attempt.
- After completion, compare checksums before removing the local original or the staged object.
A changing source is a common reason a “resume” does not behave as expected. If a build process is still writing the file, create a finished export first, then transfer that immutable file. Otherwise the sender may be comparing a different source from the one that created the partial destination.
Best Value
- Plug-and-play expandability
- SuperSpeed USB 3.2 Gen 1 (5Gbps)
Verify integrity and application readiness
Compare SHA-256 values
On the VPS, calculate the checksum for the completed path:
sha256sum /srv/uploads/large-file
Compare it with the value recorded on the workstation. If they differ, keep both copies, inspect the transfer log and repeat the transfer rather than deleting the only known-good source.
Check ownership and permissions
The account that uploaded the file may not be the account that runs the game server or deployment process. Confirm that the service can read the destination and that directory traversal permissions are correct. Do this after the bytes are verified so a permissions fix cannot be mistaken for an integrity fix.
Validate the file at the application layer
Open or unpack the archive, import the asset or run the deployment’s own validation command. A checksum catches transmission changes; it does not catch a wrong build, an archive that was incomplete before upload or a package that is incompatible with the target application.
Troubleshoot by symptom
“Permission denied” at the destination
Confirm the remote path and the SSH account, then inspect directory ownership and write permission. Upload first to a directory owned by the account, or have an administrator create the destination with the correct ownership. Do not solve a permission problem by uploading as an unrestricted administrative account unless that is an intentional part of the server design.
“No space left on device”
Run df -h on the VPS and identify which filesystem contains the destination. Remove only files you have identified as disposable, or choose a filesystem with enough capacity. Recheck the expected final size and leave room for the service that will use the upload.
The connection drops repeatedly
Use rsync with partial retention and repeat the command, or use rclone with its retry settings. If the direct route remains unstable, stage the file in object storage and pull it from the VPS. For rclone SFTP, return to the documented defaults if you previously increased chunk size or concurrency; oversized settings can trigger EOF, connection-loss or corruption errors.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteThe transfer is slow on a distant VPS
Do not change several variables at once. First establish a reliable baseline with rsync or rclone’s SFTP defaults. If you use rclone, its concurrent-write behavior may improve performance for distant servers, but increase concurrency or chunk size only after testing that particular server. A bandwidth limit such as --bwlimit 10M changes the ceiling by design, so remove it when diagnosing unexpectedly low speed.
The file arrived but the game server cannot use it
Check the exact destination path, directory-versus-contents behavior caused by the rsync trailing slash, ownership and permissions, archive integrity and the application-specific format. A successful SSH transfer says only that the sender completed its copy operation.
A practical decision framework
- Choose rsync over SSH when you control the VPS, rsync is installed and the upload is large, interruptible or likely to be repeated.
- Choose scp when the task is a single straightforward file copy and restarting after a failure is acceptable.
- Choose SFTP or rclone SFTP when you need an interactive client, a managed SFTP endpoint, retries or tunable concurrency.
- Choose object-storage staging when the direct path is unreliable, the workstation cannot remain connected, or several VPSs need the same dataset.
For a typical game-server deployment, a finished build or asset archive should therefore go to a writable staging directory with rsync’s partial-file option enabled, be resumed with the same command if necessary, and be accepted only after a checksum and application validation succeed. That workflow keeps the direct path simple while preserving a dependable fallback when the network or workstation is the weak link.




