text editors - How to automatically upload changed files over FTP

07
2013-09
  • Sergey Basharov

    I have an IDE PyCharm for editing a Django application I am working on now. It has no FTP access and I work with a local copy of my application. Then I have to upload changed files to my production server over FTP. So, is that possible to automatically send updated files as they are changed? May be there are some utilities to make it?

    UPD: I have created a webdav folder on my hosting and I have attached it as a network place in Windows XP. So, I see files in explorer inside the folder. Now I need to map this location as a drive. When I try to do this, I see the button OK becomes inactive so it won't let me know to add it or its inner folders as a drive.

    alt text

  • Answers
  • rihatum

    you can use "allwaysync" (free utility for windows) to sync folders http://allwaysync.com/download.html it can sync both locations, or you can select one as a source and one as a destination can propagate and move modified / deleted files to user specified folders

    very good and light weight - can be scheduled via task scheduler or windows batch.

  • bytesum

    If you want to directly edit the files on the production server then you can mount the relevant folders as a network drive via the windows explorer.

    If you want to edit locally and upload all changes when you're done you could use rsync.

  • rakslice

    PyCharm supports deploying files to FTP servers, and can do it automatically when files change or when you build:

    http://www.jetbrains.com/pycharm/webhelp/remote-hosts.html

    http://www.jetbrains.com/pycharm/webhelp/uploading-and-downloading-files.html


  • Related Question

    linux - Concatenate files over FTP
  • marcog

    I have a list of files on an FTP server that I would like to concatenate remotely. They are quite large so I would prefer not to download them.

    The reason I'm in this situation is because I originally thought it would be easy to do, so I split a 1.1GB file up into 50MB files and uploaded those. This allowed me to send multiple files in parallel, which goes much faster with the proxy I'm using. If someone has an alternative suggestion (assuming remote concatenation is not possible!) then I would appreciate knowing that too.

    Thanks!

    PS: This is my first time on superuser. I hope this type of question is warranted. :P


  • Related Answers
  • nik

    The FTP protocol (and therefore the standard FTP Server) does not allow any server file manipulations besides overwriting them with new copies. Concatenating files uploaded on the server does not seem feasible over FTP.

    Check if you have a secure shell (SSH) or at least TELNET login possible on the server to concatenate these files.

    To achieve bandwidth performance on an upload (or download for that matter),
    multi-part transfers are usually done (example).
    If your server supports this, it can be tried for the next upload
    (or you can upload again).

    For the present situation, you could upload another instructions file (readme.txt),
    describing how the parts are to be re-assembled. You could even upload a reassemble script that you have tried with your local split parts.

  • harrymc

    Unless you've got remote desktop access to the FTP server and can open a session thru Remote Desktop and launch a concatenation program on the server, then the answer is no : the ftp servers I know don't allow remote execution and don't do concatenation.
    I'm afraid you'll need to re-upload the unsplit file.

    I would also like to add that uploading thru multiple connections doesn't improve the upload time, which stays always limited by your bandwidth. For example, if your upload bandwidth is 20k, then one connection will upload at the speed of 20k, while two connections will upload at the speed of 2X10k=20k. Total gain is then zero. When uploading a large file, it's important to use an FTP client that supports resumes, so in case of disconnection the data already uploaded is not lost and you can later restart from where you stopped.