Skip to content

How to Transfer Files from FTP to Amazon S3 (2026): Manual, rclone, and Cloud-to-Cloud

Move files from an FTP/SFTP server into an Amazon S3 bucket three ways — manual download and console upload, rclone with the S3 backend, or a server-side copy with CloudsLinker — with the IAM keys, region and bucket settings each route needs.

Introduction

Short answer: the cleanest way to move files from an FTP or SFTP server into Amazon S3 is a server-to-server copy — connect the FTP endpoint and the S3 bucket to a cloud transfer service and let the data move between data centres while you do something else. The typical job is an exit from self-managed infrastructure: a hosting account closing, a CCTV or DVR box that has pushed years of footage to an FTP folder, an instrument or partner that only knows how to drop files on FTP. S3 is the archive people reach for because storage is cheap and durable — Standard costs $0.023 per GB-month, about $23.55 per TB (checked July 2026), and lifecycle rules can move cold data into cheaper Glacier classes automatically. The one number to know before you start is the exit fee: getting data back out of S3 costs $0.09 per GB after the first 100 GB each month, roughly $83 per TB, so plan S3 as a destination you archive into, not a staging area you round-trip through. This guide covers three routes: a manual download-and-upload, an rclone job for command-line users, and a cloud-to-cloud transfer with CloudsLinker. It also lists what each side needs — IAM access keys and a region on the S3 side, and the one hard requirement for any cloud-run method: your FTP/SFTP endpoint must be reachable from the public internet.

Why Move FTP Files into Amazon S3?

An FTP or SFTP server is a box someone has to keep running. Amazon S3 is storage nobody has to administer — eleven nines of durability, versioning, lifecycle rules — and the move usually happens when the box is on its way out:

  • A hosting account is closing. cPanel and Plesk hosts expose the site tree over FTP; when the contract ends or the site goes static, years of uploads need a permanent home.
  • A CCTV or DVR box has filled its disk. Cameras push daily footage to an FTP folder; archiving it into S3 and letting lifecycle rules tier it into Glacier keeps it for cents per GB.
  • An instrument or partner only speaks FTP. Scientific data drops and B2B file exchanges land on FTP; moving them into a bucket puts them where Athena, BigQuery-style tooling or a data pipeline can read them.
  • Cost that scales with bytes, not with a server. $23.55 per TB-month on Standard, $4 per TB-month on Glacier Instant Retrieval — with no hardware to replace.

The honest counterweight: S3 charges to get data back out — about $83 per TB of egress. It is the right destination for archives and pipelines, and the wrong one for files you plan to move again next quarter.

Before You Start: What Each Side Needs

On the FTP/SFTP side

  • Endpoint and port: the hostname or IP, plus the port — commonly 21 for FTP, 22 for SFTP.
  • Credentials: a username and password with read access to the folders you are moving.
  • Public reachability (cloud methods only): the endpoint must accept connections from the internet, not just your LAN.
  • Real folder sizes: du -sh per folder tells you the storage bill and how long the copy will take.

On the S3 side

  • A bucket in a chosen region — note the region; every tool asks for it.
  • An IAM user with access keys: permission to list and put objects in that bucket, and an Access Key ID + Secret Access Key generated for it. A dedicated migration user is easiest to revoke later.
  • A lifecycle rule if the data is an archive: transition to Glacier Instant Retrieval or Deep Archive after N days, set before the first object lands.
  • A prefix plan: s3://bucket/server-archive/2026/ beats dumping everything at the root.

Method 1: Manual Download and Console Upload

Step 1: Download from the Server with an FTP Client

Connect with FileZilla, Cyberduck or any FTP/SFTP client using the endpoint, port and credentials above, select the folders and download them to a local staging directory. Fine for a handful of folders; for tens of gigabytes it becomes a two-leg job through your own connection.

Step 2: Upload to the S3 Bucket

Open the bucket in the S3 console, choose Upload and drag the staging folder in; the console preserves the folder tree as key prefixes. Browser uploads are the weakest link here — large batches stall, and files over 5 GB need multipart handling that the console manages but a flaky connection does not.

Amazon S3 console showing a bucket's Objects tab with the Upload button highlighted

Method 2: rclone with the S3 Backend

For command-line users

rclone speaks FTP, SFTP and S3 natively and handles multipart uploads on its own. One thing to be clear about: a copy between an FTP remote and an S3 remote streams the data through the machine running rclone. Run it on a box with real bandwidth — an EC2 instance in the bucket's region is the classic choice — or accept that it uses your home connection like Method 1 does.

Step 1: Configure Both Remotes

Run rclone config twice: once for an ftp or sftp remote with the server's endpoint, port and credentials, and once for an s3 remote with provider AWS, your Access Key ID, Secret Access Key and the bucket's region.

Step 2: Run the Copy

rclone copy ftpsrv:/var/www/uploads s3:my-archive-bucket/server-archive/uploads --progress

rclone check afterwards compares sizes between the FTP tree and the bucket. Interrupted runs can be repeated; objects already present are skipped.

Method 3: Cloud-to-Cloud Transfer with CloudsLinker

Move a Server into a Bucket Without Local Staging

CloudsLinker connects the FTP/SFTP server and the S3 bucket directly and runs the copy on its own servers — nothing routes through your computer, closing the browser does not stop the job, and multipart uploads for large files are handled for you.

Step 1: Connect the FTP/SFTP Server

In CloudsLinker, click Add Cloud and select FTP (or SFTP). Enter the server address, port and credentials; an optional Access Path scopes the connection to one directory. Remember the hard requirement: the endpoint must be reachable from the public internet.

Add FTP server to CloudsLinker with host, port, username, password and access path

Step 2: Connect Amazon S3 with an IAM Access Key

In the AWS console, create an IAM user for the migration and generate an access key for it.

AWS IAM console showing the access key creation screen for a user

Back in CloudsLinker, click Add Cloud and pick AWS S3. Choose the region your bucket lives in (us-east-1 is the default), paste the Access Key ID and Secret Access Key, and enter the bucket name if the key is scoped to one bucket.

CloudsLinker Add Cloud dialog for AWS S3 with region, access key ID and secret access key fields

Step 3: Configure the Transfer

In the Transfer section, pick the FTP connection as the source and browse to the folders to move; pick the S3 bucket and the prefix to write under as the target. Filters by file type and size let you skip .tmp files or partial uploads. Use Copy mode for the first pass so the server copy stays intact until you have verified the bucket.

CloudsLinker transfer setup with FTP Server selected as source and AWS S3 as target in copy mode

Step 4: Start and Monitor

Start the transfer and track it from the Task List. Failed files retry automatically and are listed per task, so a flaky server connection costs a retry rather than a restart. One task per top-level folder keeps retries and reconciliation fine-grained; when a task finishes, compare object counts in the bucket against the FTP folder before deleting anything.

Method Comparison

Method Uses Your Bandwidth Multipart for Large Files Best For Skill Level
Manual (FTP client + S3 console) Yes — twice (down, then up) Console-managed, fragile on slow links A few folders, one-off moves Beginner
rclone (S3 backend) Yes — on whatever machine runs it Automatic Command-line users, EC2-adjacent jobs Advanced
CloudsLinker No — runs server-side, unattended Automatic Server-sized archives, hands-off migrations Beginner
Practical Tips for FTP to Amazon S3
  • Set the lifecycle rule first: a transition to Glacier Instant Retrieval after 30 days configured before the migration means the archive prices itself at $4 per TB-month without a second pass.
  • Prefer SFTP over plain FTP: same transfer, but credentials and data are encrypted in transit — which matters more, not less, when a cloud service logs in across the public internet.
  • Scope the IAM key to the bucket: a policy limited to one bucket (list, get, put) means a leaked migration key cannot touch anything else. Delete the key when the job is verified.
  • Scope the FTP connection with Access Path: pointing it at /var/www/uploads instead of / keeps system directories out of the bucket.
  • Enable bucket versioning for anything you will overwrite later: cheap insurance against a re-run clobbering a good copy.
  • Reconcile before decommissioning: compare per-folder counts between the FTP server and the bucket prefix. Only retire the server once the numbers match — and remember egress pricing means S3 is the copy you keep, not the one you shuffle.

Frequently Asked Questions

Yes. A cloud-to-cloud service like CloudsLinker connects to your FTP/SFTP server with its endpoint, port and credentials, connects to S3 with an IAM access key, and copies files directly between the two — nothing passes through your computer. The one requirement is that the FTP/SFTP endpoint must be reachable from the public internet.

With an IAM access key. In the AWS console, create an IAM user (or use an existing one) with permission to list and write the target bucket, and generate an Access Key ID and Secret Access Key for it. In CloudsLinker's Add Cloud dialog, choose AWS S3, pick the region the bucket lives in (us-east-1 is the default), paste both keys, and enter the bucket name if the key is scoped to a single bucket. Use a dedicated key for the migration so you can delete it afterwards.

Storing is cheap: S3 Standard is $0.023 per GB-month, about $23.55 per TB, and a lifecycle rule can move data to Glacier Instant Retrieval at $0.004 per GB-month once it goes cold (prices checked July 2026). Retrieving is where the bill lives: egress costs $0.09 per GB after the first 100 GB each month, roughly $83 to pull 1 TB back out. Archive into S3 with that in mind, or choose a zero-egress bucket such as Cloudflare R2 if you expect to move the data again.

Not directly. Cloud-run transfers connect from the service's servers, so the FTP/SFTP endpoint must be accessible over the public internet. If the server only exists on a LAN or behind a VPN, either expose it safely (port forwarding with strong credentials, or a temporary tunnel) or fall back to a local method such as rclone running inside that network.

Functionally no — both work as sources and behave the same in a transfer. SFTP encrypts the session over SSH (commonly port 22), while plain FTP transmits credentials unencrypted, so use SFTP whenever the server offers it — especially for a cloud transfer, which logs in across the public internet.

A single S3 object can be up to 5 TB. Anything over 5 GB must be uploaded in multipart form, which S3-aware tools including rclone and CloudsLinker handle for you. FTP itself imposes no per-file limit, so the practical ceiling is the server's filesystem and the destination's 5 TB object cap — comfortably above anything a CCTV archive or website backup produces.

The reliable pattern is to upload into S3 Standard and let a bucket lifecycle rule transition objects to Glacier Instant Retrieval, Flexible Retrieval or Deep Archive after a set number of days. Configure that rule on the bucket before the migration starts; it then applies to everything the transfer writes, regardless of which tool did the writing.

Conclusion

Moving an FTP server into S3 is a question of scale and of who does the waiting. A few folders: download them with FileZilla and drag them into the S3 console. Comfortable in a terminal: rclone talks to both ends, though every byte streams through the machine running it. For server-sized folders, a cloud-to-cloud copy with [CloudsLinker](https://www.cloudslinker.com) is the only route where nothing touches your own connection — the FTP server connects with its endpoint, port and credentials, S3 connects with an IAM access key, region and bucket, and the copy runs unattended with retries and a task log. Whatever the route, set the bucket's lifecycle rule before the data lands, and remember that $83-per-TB egress figure before you treat S3 as a temporary stop. Prefer a bucket with no exit fee? The same source works with [FTP to Cloudflare R2](/guides/transfer-files-from-ftp-to-cloudflare-r2/). For the same destination from a consumer cloud, see [Google Drive to Amazon S3](/guides/transfer-files-from-google-drive-to-aws-s3/); for a per-TB cost comparison across object stores, the [cloud storage pricing comparison](/projects/cloud-storage-pricing-comparison/). Connector details live on the [FTP](/support-clouds/ftp/) and [Amazon S3](/support-clouds/aws-s3/) support pages.

Online Storage Services Supported by CloudsLinker

Transfer data between over 55 cloud services with CloudsLinker

OneDrive

OneDrive

Google Drive

Google Drive

Google Photos

Google Photos

Shared Drive

Shared Drive

OneDrive for Business

OneDrive for Business

Dropbox

Dropbox

Box

Box

Mega

Mega

pCloud

pCloud

Yandex

Yandex

ProtonDrive

ProtonDrive

AWS

AWS

GCS

GCS

iDrive

iDrive

Storj

Storj

DigitalOcean

DigitalOcean

Wasabi

Wasabi

1fichier

1fichier

PikPak

PikPak

TeleBox

TeleBox

OpenDrive

OpenDrive

Backblaze B2

Backblaze B2

Fastmail file

Fastmail file

SharePoint

SharePoint

Nextcloud

Nextcloud

ownCloud

ownCloud

Premiumize me

Premiumize me

HiDrive

HiDrive

Put.io

Put.io

Sugar Sync

Sugar Sync

Jottacloud

Jottacloud

Seafile

Seafile

Ftp

Ftp

SFtp

SFtp

NAS

NAS

WebDav

WebDav

4shared

4shared

Icedrive

Icedrive

Cloudflare R2

Cloudflare R2

Scaleway

Scaleway

Doi

Doi

iCloud Drive

iCloud Drive

iCloud Photos

iCloud Photos

FileLU

FileLU

Zoho WorkDrive

Zoho WorkDrive

Telia Cloud / Sky

Telia Cloud / Sky

Drime

Drime

Filen

Filen

TeraBox

TeraBox

Internxt

Internxt

Degoo

Degoo

Gofile

Gofile

Pixeldrain

Pixeldrain

Shade

Shade

Koofr

Koofr

Didn' t find your cloud service? Be free to contact: [email protected]

Further Reading

Effortless FTP connect to google drive: Transfer Files in 3 Easy Ways

Explore three efficient methods to connect Google Drive with FTP, enabling seamless file transfers. This comprehensive guide provides detailed instructions, benefits, and tips for effective file management.

Learn More >

Google Photos to OneDrive: 3 Innovative Transfer Strategies

Learn three effective methods to transfer your Google Photos to OneDrive. Explore Web-Based Transfers, Rclone, and CloudsLinker for an efficient shift.

Learn More >

Google Photos to Proton Drive: 3 Effective Transfer Techniques

Discover three practical methods to move your Google Photos to Proton Drive. Learn about Web-Based Uploading, Rclone, and CloudsLinker for a smooth transition.

Learn More >

Interested in learning more?