How to Upload Files to DigitalOcean | Code Boost
Description: Transferring files to your DigitalOcean Droplet is an essential task for deploying websites, backing up data, or managing server configurations. There are several methods to upload...

Article

# How to Upload Files to DigitalOcean

By Matt · Dec 2, 2024

Transferring files to your DigitalOcean Droplet is an essential task for deploying websites, backing up data, or managing server configurations. There are several methods to upload files, each suited to different needs and preferences. In this guide, we'll explore how to upload files using:

1. SFTP with FileZilla
2. SCP via Command Line
3. rsync for Efficient Synchronization

### Prerequisite to Uploading Files to a Droplet

Click here for free DigitalOcean credit

- DigitalOcean Droplet: An active Droplet running a Linux distribution (e.g., Ubuntu).
- SSH Access: Ability to connect to your Droplet via SSH.
- Local Machine: A computer with internet access and necessary permissions.
- SSH Key Pair (Recommended): For secure authentication without passwords.

### Method 1: Using SFTP with FileZilla

Step 1: Install FileZilla

- Download: Visit the FileZilla website and download the FileZilla Client suitable for your operating system (Windows, macOS, or Linux).
- Install: Run the installer.

Step 2: Obtain Your Droplet's IP Address

- Log in to your DigitalOcean Control Panel.
- Navigate to the Droplets section and note your Droplet's public IP address.

Step 3: Configure FileZilla

- Open FileZilla.
- Go to File > Site Manager.
- Click New Site and name it (e.g., "My Droplet").

Step 4: Enter Connection Details

- Protocol: Select SFTP - SSH File Transfer Protocol.
- Host: Enter your Droplet's IP address.
- Logon Type:
  - Normal: If using password authentication.
  - Key file: If using SSH keys.
- User: Your Droplet's username (e.g., root or another sudo user).
- Password: If using password authentication, enter your password.
- Key file: If using SSH keys, browse to your private key file.

Step 5: Connect and Transfer Files

- Click Connect to establish a connection.
- On the left pane (local site), navigate to the files you want to upload.
- On the right pane (remote site), navigate to the destination directory on your Droplet.
- Drag files from the left pane to the right pane to upload.

### Method 2: Using SCP via Command Line

Step 1: Open a Terminal

- macOS/Linux: Use the Terminal application.
- Windows: Use PowerShell or Command Prompt (Windows 10/11 have SSH capabilities).

Step 2: Use the SCP Command To upload a single file: bash Copy code scp /path/to/local/file username@your_droplet_ip:/path/to/remote/directory To upload a directory: bash Copy code scp -r /path/to/local/directory username@your_droplet_ip:/path/to/remote/directory Example: bash Copy code scp index.html root@192.0.2.0:/var/www/html/ Step 3: Authenticate

- If prompted, enter your SSH password.
- If using SSH keys, ensure your private key is correctly set up.

### Method 3: Using rsync for Synchronization

Step 1: Install rsync (if not already installed)

- macOS: rsync is typically pre-installed.
- Linux: Install using your package manager (e.g., sudo apt install rsync).
- Windows: Use Cygwin or the Windows Subsystem for Linux (WSL).

Step 2: Use the rsync Command To synchronize files: bash Copy code rsync -avz /path/to/local/directory/ username@your_droplet_ip:/path/to/remote/directory/ Options Explained:

- -a: Archive mode (preserves permissions and timestamps).
- -v: Verbose output (shows progress).
- -z: Compresses data during transfer.

Example: bash Copy code rsync -avz ./mywebsite/ root@192.0.2.0:/var/www/html/

### Troubleshooting Tips

- Permission Issues: Verify the necessary permissions on the Droplet's destination directory. You may need to use sudo or adjust directory ownership.
- Connection Refused: Verify that SSH is running on your Droplet and that you're using the correct IP address.
- Firewall Settings: Make sure your Droplet's firewall allows SSH connections (port 22 by default).

### Security Considerations

- Use SSH Keys: SSH keys are more secure than passwords and prevent brute-force attacks.
- Limit User Access: Use a non-root user for file transfers when possible.
- Secure File Permissions: After uploading, set appropriate file permissions to protect sensitive data.

### Next Steps

- Automate Transfers: Consider scripting regular uploads or backups.
- Set Up a Web Server: If you're hosting a website, configure Nginx or Apache to serve your uploaded files.
- Monitor Server Security: Regularly update your Droplet and monitor for unauthorized access.