Using Transmit 5 for macOS with DigitalOcean Spaces

Spaces Object Storage is an S3-compatible object storage service that lets you store and serve large amounts of data. Each Space is a bucket for you to store and serve files. The built-in Spaces CDN minimizes page load times and improves performance.


Transmit is a macOS-only file transfer utility developed by Panic, Inc.. It handles a wide variety of server types including FTP, SFTP, WebDAV, and S3-compatible servers.

Setup

To use Transmit, you need:

Connect to Spaces

Launch the Transmit application by clicking on its icon in the dock, or double-clicking its icon in your Applications folder. Transmit opens and displays a window with your local filesystem on the left, and an SFTP connection pane on the right:

Transmit default interface

Click the Protocol selection menu, highlighted above, then select Amazon S3. This brings up the form for connecting to an S3-compatible server. Fill in the following details:

  • Address: This is the datacenter you created your bucket in, followed by digitaloceanspaces.com. For nyc3, for example, fill in nyc3.digitaloceanspaces.com for this value.
  • Access Key ID: your-access-key
  • Secret: your-secret-key
  • Remote Path: this determines where Transmit navigates to upon connecting. You may put a bucket name (and subdirectory, if desired) here to connect directly to that location

When all filled out, the connection pane should look similar to this:

Transmit S3 connection details

Click the green Connect button to connect to Spaces. Transmit connects, then displays a list of your Spaces (if you left the Remote Path option blank):

Transmit default file listing

If you have not yet created a bucket, this is empty. In the above screenshot we have one bucket called example-name. Let’s use Transmit to make a bucket next.

Create a New Bucket

To create a new bucket with Transmit 5, first move to the root directory where all your buckets are listed. You can do this by clicking the ____.digitaloceanspaces.com item all the way on the left of the breadcrumb trail at the top of the right-hand pane:

Transmit remote breadcrumb

Once you’ve done that, click on the File menu, then choose New Bucket….

A window opens asking for a bucket name and location.

Transmit new bucket creation dialog

Choose any name that fits the guidelines mentioned in the dialog. Leave the default Location value as is. Click Create and your new bucket is created and added to the list.

Note
Bucket names must be unique across all regions, so if your name is already in use anywhere on digitaloceanspaces.com, Transmit gives an error. If this happens, try another name.

Next, we’ll navigate into our new bucket and add some files.

Create Some Content in Your Bucket

Double-click on the folder that represents your bucket. This opens it and lists its contents in the right-hand pane:

Transmit Space listing with welcome.html file

To upload a file, first navigate through your local filesystem using the left-hand side of the Transmit window. When you’ve found a suitable file to upload (pick something like a JPG or HTML file, so we can test in the browser), click and drag it from the left-hand pane to the right. It copies over to your bucket and shows up in the directory listing on the right-hand side.

You can also drag and drop files directly from the macOS Finder.

Next, we’ll test permissions and learn how to make files publicly accessible.

Adjust Permissions and Test Public Access

By default, the files in your buckets are not made available to the public. Let’s find the public URL for a file and see what happens when we try to load it in a web browser. In the right-hand pane, after navigating to your bucket, click once on a file you’d like to view. This selects the file. Then click on the Edit menu and select Copy URL. The URL is copied to your clipboard. Alternately, you can right-click on the item and select Copy URL from the contextual menu:

Transmit 'Copy URL'

Switch over to your browser, paste the URL into the location bar, and hit ENTER. An AccessDenied error loads:

AccessDenied error in a browser

To remedy this, we need to change the Read permissions on this file. Back in Transmit, with the file still selected, use the File menu to choose Get Info (you could also use a right-click here). Depending on your settings, a panel slides out of the current window, or a new window opens. Either are labeled Inspector and have more details about the file, including its size, location, type, and Read and Write permissions:

Transmit 'Inspector' pane with 'Read' permission set to 'Owner'

Use the dropdown menu next to Read: to change the setting from Owner to World, then click the Apply button at the bottom of the Inspector:

Transmit 'Inspector' pane with 'Read' permission set to 'World'

Transmit updates the file’s permissions. Return to your browser and reload the URL we tried before. Your file should successfully load.