SFTP on Xojo Cloud
Posted by Greg O'Lone
One of the most highly requested features for Xojo Cloud since its release in March 2014 has been the ability to transfer files to the server using a client other than the Xojo IDE. Now you can...and it's really easy to use.
Why All the Fuss?
So you have this great new web app, backed by a SQLite database, it's been out there for a month or two and your boss says "Hey, I need the email address of everyone who's using your new app." Now if you thought about this ahead of time you're good to go, if not you will either need to add an admin-only feature to your app, use the File Manager project (which needs an SSL certificate because the customer data is likely sensitive) or use SFTP. You connect to your server, locate the SQLite database file and download a copy. Need a new version of a logo? Open your SFTP client and upload a new one.
Getting Hooked Up
First, to turn this feature on, log into your Xojo Account and open the Xojo Cloud Control Panel from the menu on the right side of your Account Settings page. You'll see that each server now has an option to enable SFTP. When you click the button, it will enable SFTP and present you with your login credentials. If you need to turn turn SFTP off, just click the button again. Reset your password by toggling the service off and on again.
Making The Connection
Now all you need is an SFTP client. If you don't already have one, there are a number of options available depending on your budget and your needs*.
- FireFTP - A plugin for the Firefox browser. Free: Mac, Windows & Linux.
- Filezilla - An FTP/SFTP-only Client. Free: Mac, Windows & Linux.
- Cyberduck - A donation-ware client which supports multiple protocols including SFTP. Free (donation recommended, $24 Mac-App Store): Mac & Windows.
- ExpanDrive - A simple drag and drop Finder or Explorer type experience. No support for changing file permissions (although it does work if sending from a Mac). $49: Mac & Windows. (Free 7-Day Trial)
*If you're a linux user, you can also use a URL with the following format: sftp://username@serverip/ and follow the prompts.
It's All About Security
You'll notice that we chose SFTP as opposed to regular FTP. As usual, when it comes to Xojo Cloud it's all about security. SFTP is a secure variant of FTP which is transmitted over the internet using strong encryption. That way you don't have to worry about anyone intercepting your username and password or your files as they're sent to your server. When choosing a client, keep in mind that SFTP is different than FTPS or FTP w/ SSL. They are not interchangeable with one another.
An Important Note about Bypassing the IDE
If you're thinking "I don't even need the IDE to deploy any more," keep in mind that when you click Deploy in the IDE, the version of your app that is compiled has access to some special features which are not available in a normal Linux web app build - most specifically, XojoCloud.Firewall and the SpecialFolder modifications. While your app will probably run just fine, you will not be able to open firewall ports and things that you would access via SpecialFolder will probably not have write access enabled. For these reasons, we suggest that you continue to use the Deploy function to upload new versions of your Xojo Cloud apps themselves.
SFTP is a Great Solution
You now have a very easy and very secure way to access files on your Xojo Cloud server. While you could deploy apps via SFTP, there's no benefit and many good reasons not to do so. But for file access, SFTP is the way to go. We will continue adding features like SFTP to make Xojo Cloud easier and more powerful.
Do you plan to use SFTP? Comment and let us know about your specific situation.