Skip to main content

Choose your transfer method

Runpod supports four different file transfer methods, each optimized for specific use cases:

runpodctl

The simplest option for occasional transfers. Uses secure one-time codes and requires no setup since it’s pre-installed on all Pods. Perfect for quick file exchanges. To install runpodctl on your local machine, see the installation guide.

SCP

A reliable, standard method that works over SSH. Ideal for users comfortable with command-line tools who need to transfer both individual files and directories. To configure your Pod for SSH access, see the (SSH setup guide).

rsync

The most powerful option, featuring incremental transfers, compression, and detailed progress reporting. Essential for large datasets, regular synchronization, and preserving file attributes. To set up rsync:
  • Configure SSH access (same as for SCP).
  • Install rsync on both machines: apt install rsync
  • Ensure your local machine is running a Linux or WSL environment.

Cloud sync

Direct synchronization with cloud storage providers like AWS S3, Google Cloud Storage, or Dropbox. Best for creating backups or sharing files across multiple environments. To learn more, see the cloud sync configuration guide.

Transfer with runpodctl

The Runpod CLI offers the most straightforward approach to file transfer using secure one-time codes. This method works great for occasional transfers but consider other options for large files.

Send a file

From the source machine (your local computer or a Pod), run:
You’ll see output like this:
The code 8338-galileo-collect-fidel is your unique, one-time transfer code.

Receive a file

On the destination machine, use the code provided by the send command:
You’ll see confirmation of the transfer:

Transfer with SCP

SCP provides reliable file transfer over SSH connections. Use this method when you need standard command-line file operations.

Basic syntax

The general format for SCP commands (replace 43201 and 194.26.196.6 with your Pod’s port and IP):
If your private key is stored elsewhere or you’re using Windows Command Prompt, update the key path accordingly. For quick one-time setups, consider password-based SSH.

Send files to your Pod

Transfer a single file:
Transfer a directory (use -r for recursive copying):

Download files from your Pod

Simply reverse the source and destination:

Transfer with rsync

rsync offers advanced synchronization features and is the best choice for large datasets or regular backup operations.
rsync requires a Linux environment or WSL on Windows.

Basic syntax

Essential flags

  • -a (archive) - Preserves permissions, timestamps, and attributes (essential for directories)
  • -v (verbose) - Shows detailed transfer information
  • -z (compress) - Compresses data during transfer (saves bandwidth, uses more CPU)
  • -p (progress) - Displays transfer progress
  • -d (delete) - Removes files from destination that don’t exist in source

Send files to your Pod

Transfer with progress and compression:

Download from your Pod

Directory synchronization

Transfer directory contents only (note the trailing slash):
Transfer the directory itself (no trailing slash):

Incremental transfers

rsync’s key advantage is intelligent synchronization. Files that already exist at the destination aren’t transferred again: First transfer (full copy):
Second transfer (minimal data):

Sync with cloud storage

Connect your Pod storage directly to cloud providers for seamless backup and synchronization. To set up cloud sync:
  1. Navigate to your My Pods page
  2. Click the Cloud Sync option for your Pod
  3. Follow the provider-specific configuration steps
For detailed setup instructions with AWS S3, Google Cloud Storage, Azure, Backblaze, and Dropbox, see the cloud sync configuration guide.

Transfer with Google Drive

You can also use these Colab notebooks to transfer files between Pods and Google Drive:

Troubleshooting

Here are some common issues and possible fixes: Connection refused errors:
  • Verify SSH is properly configured on your Pod.
  • Check that the correct port and IP address are being used.
  • Ensure port 22 is exposed in your Pod configuration.
Permission denied:
  • Confirm your SSH key is correctly specified with -i
  • Verify the key has appropriate permissions (chmod 600 ~/.ssh/id_ed25519)
  • Try password-based authentication for quick tests.
Large file transfers timing out:
  • Use rsync instead of SCP for better reliability.
  • Add the -z flag to compress data during transfer.
  • Consider splitting very large files before transfer.