In the beginning, there was Fetch. Written by Jim Matthews when he was at Dartmouth College, Fetch was one of the first graphical Mac applications for the Internet, and I bundled a copy of it with the first edition of my “Internet Starter Kit for Macintosh” in 1993. Also mentioned in that book was FTPd, a program from Peter Lewis that let you set up your Mac as an FTP server; Peter soon shifted gears and wrote Anarchie, an FTP client that went Fetch one better by including the capability to search the Archie servers that indexed the contents of public FTP servers on the Internet. I bundled Anarchie with the second edition of “Internet Starter Kit for Macintosh.”
Both Fetch and Anarchie, the latter eventually renamed Interarchy when it proved impossible for Peter to acquire the anarchie.com domain name during the domain name land grab days, remained the standard Mac FTP clients for years, each adding features and file transfer protocols, experimenting with different interfaces, and becoming ever more reliable. Both also eventually changed hands, with Jim Matthews buying Fetch back from Dartmouth with money won on “Who Wants to Be a Millionaire?” and Interarchy developer Matthew Drayton buying the program from Peter Lewis. But file transfer is no longer rocket science, and thanks to lulls in their development and other factors, over time the two applications were joined by a whole host of competing file transfer programs that offered slightly different takes on the task, including Captain FTP, CuteFTP Mac Pro, Cyberduck, Filezilla, Flow, ForkLift, Transmit, Yummy FTP, and more.
Nevertheless, Fetch and Interarchy always served my file transfer needs, so I never found the time to explore any of the newer alternatives... until I wanted to use Automator.
Changing Needs -- One aspect of distributing a new Take Control ebook title is that I need to create a number of precisely named files on my Mac, after which they need to be uploaded to multiple destinations, which include our primary server via SFTP, to Amazon S3, and to a soon-to-be-retired server via FTP. This is not difficult work, but it’s repetitive and fussy—particularly the file naming, which takes our nicely human readable filenames and makes them shorter and more appropriate for online filenames—and anything that’s repetitive and fussy should be automated.
Unfortunately, while Fetch has good support for Automator, it doesn’t work with Amazon S3. And while Interarchy does work with Amazon S3, its Automator support was a little dicey and worse, when I started this project, it set files uploaded to Amazon S3 to be private, requiring me to do manual fiddling to enable them to be seen by non-authenticated users. I turned first to Cyberduck to solve this problem, since it supported Amazon S3 and set the file permissions correctly, but Cyberduck didn’t come with Automator actions, forcing me to upload each file manually.
So after 17 years of relying on Fetch and Interarchy, this particular combination of needs sent me looking for a new file transfer client. I can’t say that I evaluated all the possibilities in depth, since, while a number of programs now support Amazon S3, Automator support was also essential, and few of the file transfer programs advertise that feature. Within a short period of time, I ended up testing Panic’s Transmit 4.
Exploring Transmit -- Beyond providing the basic functions of uploading and downloading files, and working with external editors (features that I assume are common to all file transfer clients), Transmit boasts a huge feature set and a deep, elegant user interface. Nevertheless, I initially found Transmit’s two-pane interface a bit uncomfortable, purely because I’ve become accustomed to Fetch’s spartan list view and Interarchy’s mimicking of Web browser tabs and bookmark bar. Transmit does support tabs, but since it doesn’t display the tab bar by default, you might not notice that capability immediately. And, while Transmit can open a single favorite in each pane on startup, it won’t reopen your previously visible tabs on startup as Interarchy does. Still, after some fiddling and exploration of Transmit’s many preferences, I was able to get it to show a single pane (I prefer to drag files in from the Finder to upload) and to open a favorite automatically on startup. And now that I know Transmit supports tabs, I’ll use the New Tab command instead of New Window when I want to connect to another remote location.
In part, I had trouble with Transmit’s visible interface initially because I was paying more attention to integrating it into my Automator workflows. There it performed brilliantly, though I had to think briefly about the best ways of doing things due to Transmit’s flexibility. For instance, in my workflow I could either specify the remote server information manually, or I could have it use a Transmit favorite (the former would have been better had I been creating the workflow for someone else to use). My first tries at automating the uploads to Amazon S3 were successful, which was the Holy Grail of the entire process. I did discover that my uploaded files lacked the desired permissions on Amazon S3, but some quick research into Transmit’s permissions preferences (Transmit > Preferences > Rules > Permissions) revealed that I could set default permissions on upload, either for a protocol as a whole or for particular file types, which addressed that issue.
With some additional tweaking, I created favorites for all the remote locations I use regularly, gave them custom icons to make differentiating among them easier, configured Transmit to give me proper HTTP URLs (instead of the default SFTP URLs) when copying from certain favorites’ file lists, and generally set up Transmit to work the way I wanted. I even synchronized its favorites via MobileMe so I’d have the same set on my MacBook. With that done, I started exploring some of Transmit’s more advanced and unusual features.
First, I decided to give the two-pane interface another look. Several of my remote locations map exactly to local folders, so I opened the local folder on the left and the remote folder on the right. This was a bit tricky the first time, since my local folders are actually on a mounted network server, but Transmit has an easy-to-overlook Places pop-up at the left side of the Path Bar that provides quick access to local or remote folders. Once I’d navigated to the right spot on my network server, I was able to add the three folders to the Places pop-up (note that they must be dragged in from Transmit, not from the Finder). Then it was easy to get the two panes showing the local and remote files.
Next I realized that Transmit can synchronize local and remote folders, in both directions, comparing same-named files either by modification date or file size. For giggles, I ran some simulated syncs (any synchronization feature should allow simulation, as Transmit does, so you can see what’s going to happen before it does). I discovered, interestingly, that I had two misnamed files locally; apparently I had fixed some naming problems only online. I’m not entirely sure when I’d use synchronization in my particular workflow, but it’s easy to imagine situations where files could appear on both sides of the equation and need regular synchronization.
One interesting feature, although one that I haven’t yet used, is Transmit’s integration with the MacFUSE utility to create virtual disks for any remote site. These virtual disks look and work exactly like any other hard disk or network volume in the Finder, and Transmit doesn’t even have to be running for you to use them. It does occur to me that perhaps I could have used Automator’s Finder copying actions with Transmit’s virtual disks instead of using Automator’s Transmit actions.
One Transmit interface feature that I especially like is the interactive path bar at the top of the file list. It shows all the folders above the current one in the hierarchy (local or remote), and you can click any one to jump directly to it. The last folder in the bar is also a pop-up menu listing the hierarchy: useful for when you’re too deep in the hierarchy for all the intermediate levels to appear in the path bar. However, if you need to copy and paste a given file’s path, you have to Control-click a given file and choose Copy Path, something I need every so often.
Transmit also now supports all of the Finder’s views, including icon view and Cover Flow view, not that either seem all that useful for remote file handling (then again, I don’t find either all that useful in the Finder). And then there’s Quick Look support (select a remote file and press the Spacebar), which is a big win when you’re trying to identify some oddly named graphic or text file.
In the end, I’m struck by how deep Transmit is. I had been using it happily for some time before I set out to write this article, and most of the niggling annoyances that I was prepared to mention merely turned out to be capabilities that I hadn’t yet found or come to understand. Transmit’s online help is adequate, but by no means loquacious, and because Panic put so much effort into making the interface provide controls only when they’re needed, you may not realize what the program can do. What I’m saying, in short, is that although everything in Transmit makes sense, if you’re used to another file transfer program, be prepared to spend some time poking and prodding at Transmit’s interface.
So should you drop whatever file transfer program you’re using and switch to Transmit? No, honestly, I don’t think so. Unless, that is, there’s something that you’ve found lacking in whatever you’re using now, much as I did, or if some of the features I’ve described above seem compelling to you. As I said, basic file transfer is no longer rocket science, and if you have relatively minimal needs, nearly any file transfer client will suffice. But if you’re looking for power and flexibility beyond what some other programs can offer, you won’t go wrong by checking out Transmit.