Panorama and FTP


After struggling to get a macOS FTP client to regularly schedule an FTP download, I’ve decided to see if Panorama can handle this.

What process have others used to successfully have Panorama instigate and take responsibility for a FTP download? As much details as you may have would be appreciated.


I would recommend something like Keyboard Maestro.


It has been a very long time, but I did have ftp working with Panorama for a project. It would take a while to deconstruct my procedures at this point, but FWIW I did find my embedded notes on using curl:

To ftp files using name+passwd, include them in the URL like:

    curl ftp://name:passwd@machine.domain:port/full/path/to/file

or specify them with the -u flag like

    curl -u name:passwd ftp://machine.domain:port/full/path/to/file

Local lvResult lvResult = “”

To upload a single file:
Curl lvResult,’-u user:pword -T /files/one.txt

To upload multiple files:
Curl lvResult,’-u user:pword -T “{/files/one.txt,/files/two.txt,/filestoo/three.txt}”

To Delete a file:
Curl lvResult,"-u user:pword -O -Q ‘-DELE one.txt’"

To Delete multiple files:
Curl lvResult,"-u user:pword -O -Q ‘-DELE one.txt’ -O -Q ‘-DELE two.txt’"


Ah. I had been playing with my very old forgotten QuicKeys and became disappointed with its instability. I had not remembered about Keyboard Maestro and hopefully it will have the stability needed. Thanks for the pointer.


Thanks James. I’ll be downloading unknown file names so I’ll first need to get a directory listing of the remote server, etc, but your stuff will be a good start for others as well. I had not found any notes in the forum regarding FTP other than your statement that it could be done. Of course it can be done. We’re talking about Panorama. :wink:

I’ll pursue this path along with Keyboard Maestro manipulating Transmit as I’ll also get synchronization of directories which I’ll appreciate.


I believe that’s: curl -l


I¹ve used cronx and applescript to drive Interarchy FTP for this, from both
within Panorama and from without.

I tried sending more details, but my reply was bounced for having too many
³links² in it?

If you¹d like more detail on that method, let me know. It¹s been working
reliably for years now for me. Cronx fires an applescript, which activates
Interarchy and does whatever ftp stuff you desire. Or you can embed the
applescript in a Panorama procedure. I use both, for different tasks.


If you want to try again, it should go through. You have just been bumped to the “basic” trust level, and the new user restrictions have been removed.

You were still listed as a new user, because you hadn’t read enough posts (as far as the forum could tell.) It only counts the posts you read when you are logged on. It doesn’t know about the hundreds of posts you have probably read in your email.


Hah… The hundreds for sure…


I¹ve used a combo of Panorama, Applescript, and Cron to do this fairly
reliably. For years I¹ve had an Applescript that was constantly running a
loop and checking the time, then uploading files once a day, it was solid.
But, when I needed another similar script to run (at a different time) I ran
into issues, even thought the new script was an edited version of the
original. The solution was to separate the timekeeping from the
Applescript, use a cron job to run the Applescript at the desired time, then
both the original Applescript (watching the time itself) and the new script
(fired by cron) performed as desired. Or the cron job could fire an
Applescript that activates Panorama and runs a procedure that uses embedded
Applescript in a similar way.

Using Applescript sans Panorama

The cron fires the Applescript at a set time of day. (using cronx)

The Applescript then activates Interarchy and fetches a file, then removes
the file from the host, then sends an updated file (two different files one
grabs new data from the web server, one sends updates to the web server).

³code snippet…²

tell application “Interarchy"
fetch file
"Server5:Accounting:WebSiteStore:drupal_orders.csv” host
"" path
.csv" user “XXXXX” password “XXXXX” with overwrite

                    remove host "" path

.csv” user “XXXXX” password “XXXXX” without recursive

                    store file "Red House

Files:WebSiteStore:panorama-orders.csv" host “” path
rs.csv" user “XXXX” password “XXXXX” with overwrite

                end tell

Or from within a Panorama procedure

Applescript |||
tell application "Interarchy"
store file $«“InsertPathHere:”+mySSFileName»$ host “"
path “/” user “XXXXXXX” password “XXXXXX” with overwrite
store file $«“InsertPathHere:”+mySSFileName»$ host
"” path “/” user “XXXXX” password “XXXXXX” with
end tell |||