FTP: the veteran
FTP moves files between your machine and a server, and has since the 1970s. Plain FTP sends everything unencrypted, including your password, which is why it survives mostly on legacy systems and internal networks. FTPS wraps the same protocol in encryption and is what most "FTP" servers actually speak today.
SFTP: the secure workhorse
SFTP is file transfer over SSH, the same secure channel admins use to log into servers. Everything is encrypted, login can use keys instead of passwords, and almost every Linux server supports it out of the box. For moving files to and from a server you control, SFTP is the default answer.
S3: storage as a service
S3 is different in kind, not just in age. There is no server of yours; there are buckets holding objects, reached over HTTPS through an API. Capacity is effectively unlimited, files get features servers never had, versions, lifecycle rules, expiring share links, and the same API is offered by a dozen providers beyond Amazon, from Cloudflare R2 to MinIO on your own hardware.
Which one do you need?
Uploading to a web host or a client's server: whatever they gave you, usually SFTP or FTPS. Backing up, archiving, serving assets, sharing data at scale: S3 or one of its compatible services. Working with a NAS or an old appliance: often FTP is the only door.
In practice, many people end up with several of these at once. That is the case Varv is built for: one app that speaks S3, FTP, FTPS and SFTP, with the same transfer queue, search and keyboard shortcuts across all of them.