Super Slow & Super Weird FTP

Hi,
Ever since using Wappler, we have setup almost all our/client’s projects to upload to various shared hosting servers. Every time we save a file, with the target selected as FTP, it “connects” to the server, then uploads it. This time of connecting and uploading ranges from 3 seconds to 20 seconds - with frequent failure every 10-15th upload.

I have tried setting USE ACTIVE option in target thinking it will not try to “connect” every single time I save a file, but it does not work that way. It basically does not do anything for me.
I do see a slightly better speeds when uploading multiple files, but its rare.

Next is the publish option, which is the main disaster for me. I have basically stopped doing a publish since past 4 months or so.
From the output window, I see that it first reads each and every folder-subfolder and file on the remote server, then it starts uploading files one by one, again taking same amount of time “reading” as it did earlier, and then additional time in uploading the file actually.

Now, if I just copy the same folder/files via FileZilla (similar to what publish or save does), it takes almost fraction of the time Wappler takes. FileZilla also does a check on each file/folder/sub-folder etc but it does not cause any issues. So there is no internet issue on my or server’s end for sure.

To summarize:

  1. Saving file on Wappler with FTP target, connects to FTP first always, and then uploads the file. There is no active connection kind of functionality.
  2. Doing full publish takes forever.
  3. Both normal upload and publish-like upload from FileZilla always takes fraction of the time Wappler takes.

So, is there something I have been doing wrong since the beginning or is it a Wappler shortcoming which has not been reported before, hence not been improved upon?
Or, is this some issue with shared hosting, FTP & Wappler (reminder: shared hosting, FTP & FileZilla works fine)?

1 Like

May be wrong but l I think the team changed the default a few updates ago so files are not uploaded to the production target automatically, they have to be pushed when needed.

Default upload action was changed in 3.7.3
(i don’t like it either)

Thatnks for the reply Brian.
Unfortunately, my post is not related to this. The FTP does not work well for me irrespective of target type.

About the auto-upload changes:
The production no-upload thing is a good addition in my opinion, but should have been an explicit setting on project target level. I did read about it, but did not realize why my files were not uploading for about half hour… And then it clicked.

At first I didn’t like it. But got used to it. As earlier today it actually saved me a big hassle when I forgot to change my target to my development target. I was glad it was there today. :slight_smile:

Hey Brian, maybe you would prefer to set all targets to Development to replicate the old behavior? You can still label them Production, but set them as Development.

Yes, that’s not a bad idea Ken, working on a couple of node/ docker projects at present so not such an issue but when i go back to older php apps then it is just an irritation I have to learn to get used to i guess.

Personally i blame you :innocent:
(i normally just keep the production ftp locked if i am concerned about non intended uploads)

1 Like

@patrick Any thoughts on this? Would really like to know something about this from the inside.

If you use a single publish action then it should go through single ftp connection, but still have to synchronized all the files and folders. So it will upload all the missing ones or updated.

Fetching all the various directories can take a while if you have many or your ftp server is pretty slow.

But as it is all done now - as one single step in publish only - it shouldn’t be a problem.

There are no separate file by file uploads any more. So that won’t slow you down

If you have large delays on the Publish action (I mean more than few minutes) - then you and share the ftp log from the bottom panel. Maybe also an extended version with debugging on

Also - if you compare it with Filezilla - you should also do a full site synchronization in Filezilla as well - not just simple few files uploads

Thats what I would assume, but I keep seeing connecting prompts in the output. And often it just times out.

Not sure what the definition of many is. Even a simple PHP project creates hundreds of nested AWS items. Files that I create is usually just 1 in front end, and 1 server action.

Like I said, no issues with FileZilla so not a FTP or Internet issue.

Will have to try it out. Did not see this change in any update logs.

Will try.

Not sure how to do that in FileZilla.
But I don’t understand, what the need of synchronization is?? Wappler does NOT delete renamed & moved files from the server anyways (a HUGE security risk), so what is it synchronizing?
I just select the complete folder, and upload it in FileZilla, and for conflicts, I have set the option to “upload if newer in source”, and everything completes fast and smooth.

1 Like

@George / @patrick
Any thoughts on this?

Hi Sid,
Did you ever get a resolution to this? I have always found it to be very slow and was hoping there might be a solution.
Cheers
STeve

No.
We pretty much stopped using PHP and FTP and switched to NodeJS and Git-based Caprover deployment after a few months from what I remember.

For the few old projects, we just manually copy the updated files using Filezilla. Since we had just a couple of such apps that too not in active development, its no longer a problem.

With the new resource manager thing, I think things have improved. I have not used it so can’t say for sure.

Thanks Sid. Most of my work is retrofitting into existing html5 sites - adding forms, payment pages, anything the designer wants to add but cant do it themselves. Unfortunately it is php and ftp only. Filezilla works well. The biggest thing I find is the first publish. It won’t even create the folders but happy to upload if the folder is there. Once that part is done I just have to remember if I add a new component to then manually upload the files. Thanks for the quick reply