Как быстро развернуть активы на Amazon S3 с мишенью муравья?

StackOverflow https://stackoverflow.com/questions/3821416

Вопрос

Какой самый быстрый способ развертывать контент к CDN с мишенью муравья? My My Ant Target работает на сервере непрерывного интеграции (HUDSON). Мое текущее решение использует Curl и немного медленно. Должен ли я использовать WUT или что-то еще и как бы я сделал это в муравьеде?

<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) Максимальная пропускная способность трубы, используя задачу параллельного атака, чтобы одновременно перенести несколько взаимоисключающих файлов. Например, если в выходной папке есть три подпапки, каждая из них может быть дана для другой параллельной задачи, и каждый из них будет пересекать файлы, вызывая CURL при каждом файле, чтобы перенести его на CDN. http://ant.apache.org/manual/tasks/parallel.html.

2) Написать пользовательскую задачу Ant (Bash Script?), Который имел бы местные знания о сборке, так что любые файлы, которые были изменены последней сборкой, и только эти файлы будут переданы. Это предотвратит отправку файла, который уже находится на CDN.

3) Прочитайте удаленный каталог из CDN и используйте Timestamps, чтобы определить, какие файлы отправлять. Это может быть невозможно в зависимости от CDN и допускает ли он такие запросы. Я надеялся, что Wutt может сделать это, но я не вижу вариант для этого. http://wput.sourceforge.net/wput.1.html.

Это было полезно?

Решение

Решается

Я нашел блог под названием "Развертывание активов для Amazon S3 с муравьим«Что было чрезвычайно полезно. Он использует сценарий Python»S3CMD синхронизация«Что только передает файлы, которые не существуют в пункте назначения.

Я закончил эту мишень муравья:

<target name="s3Upload">

<property name="http.expires" value="Fri, 31 Dec 2011 12:00:00 GMT" />
<exec executable="${PYTHON_DIR}\python.exe" failonerror="true">
  <arg value="${PYTHON_DIR}\Scripts\s3cmd" />
    <arg value="--guess-mime-type" />
    <arg value="--add-header=Cache-Control:public, max-age=630657344" />
    <arg value="--add-header=Expires:${http.expires}" />
    <arg value="--encoding=UTF-8" />
    <arg value="--skip-existing" />
    <arg value="--recursive" />
    <arg value="--exclude=*.log" />
    <arg value="--acl-public" />
    <arg value="sync" />
    <arg value="${CDN_DIR}/" />
    <arg value="s3://my-project-cdn/" />
  </exec>

</target>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top