我是2人团队的首席开发人员。我的合作伙伴刚刚join该项目,尽pipe使用GIT进行版本控制等,但是在代码部署方面,我们仍然处于黑暗时代。
目前,我使用Filezilla通过FTP进行所有站点更新(这样我就可以控制/负责所有活动)。
我已经做了这么多年,但现在我们有一些大的PHP类(300KB),并且有很多的stream量。
所以简而言之,每次我上传一个关键类“general”时,网站就会停止运行,直到文件完成上传。 这一次只有5/6秒,但这是越来越不能接受的。
我意识到我可以用不同的名称上传文件,然后重命名这两个文件…但是真的有更好的方法吗?
我听说过另一台服务器的rsyncing代码,但是我不明白这是如何防止在上传时切换到新文件。
我们只有一个服务器(用于DB和Apache),但也使用一些云服务器(以openx为例)。
rsync在默认传输模式下的确如此:它在传输期间在目的地上创build一个新文件,并在传输完成后对其进行重命名。
但是,这对于上传“不一致”的情况没有帮助 – 即,您上传了依赖于其他尚未上传的文件的文件。 如果这是一个问题,您需要上传到一个完全不同的目录结构,并在整个传输完成后切换。
WinSCP有一个目录“同步”function,将自动同步到远程FTP服务器,如Filezilla服务器。 Filezilla客户端没有这个function。 你可以在这个列表中获得一个SFTP服务器 。 如果您select了正确的SFTP服务器,那么上传时不会保留文件locking,直到最后一位被传送并且文件被replace。
或者,您可以保留上载到的非活动服务器FTP目录,然后使用另一个本地软件(如WinSCP)与同一服务器上的实时目录进行即时同步。 这样可以避免上传延迟期间的文件locking。