В настоящее время я развертываю статические ресурсы приложения PHP, используя s3cmd.
Если актив для Amazon S3 изменился (например, сценарий JavaScript), я переименую его вручную, чтобы новая версия была синхронизирована и обслуживалась Amazon Cloudfront.
Существуют ли документированные методы развертывания статических активов приложения PHP для Amazon S3? Я видел, что сайты используют хеш для ссылки на определенную версию развертывания своих активов. Мне интересно, как получить этот хэш (например, git commit SHA?), На который ссылается веб-приложение.
Подход, который я видел, работает, записывая автономный файл конфигурации, который содержит текущий SHA, и читает его для развертывания.
Обновление 1 с текущим процессом
Я хочу сделать автоматизацию развертывания активов:
app.23.js
в app.24.js
app.24.js
develop
в master
master
ветвь.Я хотел бы думать, что нет конкретного ответа на этот вопрос, но здесь есть несколько вещей.
Если вы только хотите автоматизировать ручную работу, которую вы делаете, может оказаться целесообразным изучить несколько инструментов развертывания. Capistrano и Magallanes - это два имени, которые приходят мне на ум, но вы можете сделать это для Google, и я уверен, что вы найдете много вариантов.
Рамка Rails была основана на философии, что есть лучший способ сделать что-то. Он также использует хеши для создания статических активов и делает свою работу "на лету". Вы можете посмотреть, как реализовать хеширование в вашем случае.
Grunt - еще один инструмент автоматизации, который вы можете изучить. Я нашел этот модуль, который может пригодиться https://github.com/theasta/grunt-assets-versioning
Я бы сказал, для меня 2,3,4 являются проблемными областями в вашем рабочем процессе. Переименование вручную и обновление кода каждый раз не звучит слишком хорошо. Как вы отметили, хеши GIT уникальны, поэтому, возможно, добавьте хеш GIT в свои активы во время развертывания и синхронизируйте их с S3/Cloudfront?