ftp - Phing - 使用 FTP 部署但仅在大小更改时覆盖

标签 ftp phing

我正在使用 Phing,现在我正在使用此代码将我的文件上传到 FTP:

<target name="ftp.upload">
    <echo>Uploading files to FTP</echo>
    <ftpdeploy 
        host="${ftp.destination.host}"
        port="${ftp.destination.port}"
        username="${ftp.destination.username}"
        password="${ftp.destination.password}"
        dir="${ftp.destination.dir}"
        mode="${ftp.destination.mode}">
       <fileset refid="TheFiles" />
    </ftpdeploy>
    <echo>FTP Upload Finished!</echo>
</target>

加载需要很长时间,而且我有很多图像 - 所以每次我对文本进行小的更改时,我都不希望它重新上传所有内容。有没有办法检测哪些文件已更改并只上传这些文件?

谢谢!

最佳答案

这有点晚了......但你实际上可以用Phing来做到这一点。这需要几个步骤:

定义要开始的日期属性。当您为将来的构建保存最后构建日期时,这将是必要的

< tstamp>
  < format property="builddate" pattern="%m/%d/%Y"  />
  < format property="buildtime" pattern="%I:%M %p" />
< /tstamp>


定义 lastbuilddate 属性。将其定义为某种方式。然后包含一个具有相同属性的文件(将在运行结束时创建)。如果文件存在(第二次运行及之后),它将覆盖您定义的设置,无论最后一个日期是什么

< property name="lastbuilddate" value="01/01/1970 12:00 AM" />
< property file="$.\lastbuild.properties" override="true"/>


在文件集定义中包含日期任务。指定仅选择上次修改日期在上次构建日期之后的文件

< fileset id="TheFiles" > < date datetime="${lastbuilddate}" when="after"/> < / fileset>



为 TheFiles 文件集运行 ftp

使用最新的运行日期更新 lastbuild.properties 文件。请注意,我们正在使用最初定义的日期/时间属性。

    < echo msg="lastbuilddate=${builddate} ${buildtime}" file="$./lastbuild.properties" append="false" />


每次运行目标时,它只会对自 lastbuilddate 属性中指定的日期起更改的 ftp 文件

关于ftp - Phing - 使用 FTP 部署但仅在大小更改时覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7728206/

相关文章:

php - 使用 PHP 访问 FTP 目录列表

c# - 想要使用 C# (FtpWebResponse) 从 FTP 读取文件列表,但它返回 HTML

php - 是否有可用于 phing 的 ssh 和 scp 任务?

phing - 检查属性是否已在 phing 中设置

php - 在 phing 中获取 spawned exec 的 pid

phing - 使用 Phing 查找替换文件中的文本

ftp - Android Studio编译错误

bash - 使用单个 session 在 shell/bash 中递归 FTP 目录列表(使用 cURL 或 ftp)

java - Apache Commons Net 慢速 FTP 上传

php - 2 台云服务器,一名开发人员,一名生产人员;什么是好的部署流程?