将内容部署到具有 Ant 目标的 CDN 的最快方法是什么?我的 Ant 目标在持续集成服务器 (Hudson) 上运行。我目前的解决方案使用 curl 并且有点慢。我应该使用 wput 还是其他东西,我将如何在 ant 中做到这一点?
<target name="Deploy">
<for param="file">
<path>
<fileset dir="${basedir}/output" includes="**/*"/>
</path>
<sequential>
<echo> Deploy @{file} </echo>
<exec executable="curl">
<arg value="-F name=value"/> <!-- params for secure access -->
<arg value= "-F file=@{file}"/>
<arg value="http://cdn.com/project"/>
</exec>
</sequential>
</for>
</target>
已经提出了几个想法来加快向 cdn 传输内容的速度
1) 通过使用并行 ant 任务同时传输多个互斥文件集来最大化管道带宽。例如,如果输出文件夹中有三个子文件夹,则可以将每个子文件夹分配给不同的并行任务,并且每个子文件夹都会遍历文件,对每个文件调用 curl 以将其传输到 cdn。 http://ant.apache.org/manual/Tasks/parallel.html
2) 编写一个自定义 ant 任务(bash 脚本?),该任务将具有有关构建的本地知识,以便标记上次构建更改的任何文件,并且仅传输这些文件。这将阻止发送已在 cdn 上的文件。
3)从cdn读取远程目录并使用时间戳来确定要发送哪些文件。这可能无法实现,具体取决于 cdn 以及它是否允许此类查询。我希望 wput 可以做到这一点,但我没有看到这样的选择。 http://wput.sourceforge.net/wput.1.html