Improving Your Mac OS X FTP Experience

There are many ways of getting a file from your computer to someone else’s computer: you can send it via email, from a web page, or upload it to .Mac’s iDisk. But more basic than any of these is the aptly named File Transfer Protocol, or FTP. FTP is as integral to the internet as the web and for a long time was the primary way files were sent between computers.

Mac OS X provides for downloading from an FTP site (from Finder, choose Go > Connect to Server… and enter the address, e.g. ftp://ftp.apple.com), but surprisingly doesn’t provide for a way of sending files (i.e. writing) to an FTP site. (And the download functionality is awfully slow anyway.) Why, I’ll never understand. “Third-party opportunity,” as they say.

Fortunately, there are many third-party developers filling this opportunity (a search on VersionTracker for “ftp client” returns some 40 applications). My favorite is Panic’s Transmit ($18), though Fetch ($25) continues to be highly regarded, and Captain FTP ($25) has a strong following. If you’d rather not pay that much for an FTP client, CyberDuck is donation-ware (and donate you should).

The problem is if you click a link in your browser, instead of your FTP application of choice launching, Finder tries connecting to the FTP site. This often leads to great pain as Finder chugs through the connection and download, and too bad if you need to upload a file.

No, what you need is for your FTP application of choice (let’s just call it Transmit) to be the default application for all FTP activity.

Here’s how you do that.

First, download and install an FTP application. I use Transmit because it’s fast, well-designed, and I like the company. Installing Transmit is a breeze. Download and open the disk image, and drag the icon to your Applications folder. That’s it. Double-click the application to launch and register it with the system.

Then, you need to be able to change how your system treats FTP links. That means changing your system’s default behavior, and unfortunately, there’s no built-in way to do this. Why, I’ll never understand. “Third party opportunity”. Right.

In this case, that third-party is RCDefaultApp. And its most elementary level, it lets you decide which application opens when you click on, say, a web link, an email link, or, in our case, an FTP link. So download RCDefaultApp, open the downloaded disk image, and install it by double-clicking RCDefaultApp.prefPane

Rcdefaultapp-Finder

Since it’s a preference pane, System Preferences will launch and ask if you want to install it for this or all users. Choose “Install for this user only” and select “Install“.

Rcdefaults-Install

Aside: You may get another message saying “The preference pane you are installing is already installed. Do you want to replace the existing preference pane?” Fight your urge to say “OK”, and instead choose “Cancel“. There’s a bug that prevents the preference pane from being installed if you say “OK”. I’ve reported it to the developer.

Once installed, the prefpane shows up as “Default Apps” (look under “Other” if you’re organized by category). Click Default Apps and note the options under “Internet”.

Rcdefaults-Main

Select FTP, then click the popup under “Default Application” and select your chosen FTP application (in this example, Transmit).

rcdefaults-ftpoptions.png

Quit System Preferences, and the next time you click an FTP link, your FTP application should open automatically. Go ahead, try it: ftp://ftp.apple.com.

RDefaultApp isn’t just for FTP applications. It can also be used to enhance security by preventing certain internet URLs, file extensions and file types from opening an application. We’ll talk about that in a future article.