Опубликовать на S3 с помощью Git?
Кто-нибудь знает, как это сделать? До сих пор я не мог найти ничего полезного через Google.
Мне бы очень хотелось настроить локальное репо и использовать git push
, чтобы опубликовать его на S3, идея состоит в том, чтобы локальная версия контролировала активы, но удаленное хранилище на S3.
Можно ли это сделать, и если да, то как?
Ответы
Ответ 1
1 Используйте JGit через http://blog.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html
Загрузите jgit.sh, переименуйте его в jgit и укажите его путь (например, $ HOME/bin).
Настройте файл конфигурации .jgit и добавьте следующее (заменяя ключи AWS):
$ vim ~/.jgit
accesskey: aws access key
secretkey: aws secret access key
Обратите внимание, что, не указав acl: public в файле .jgit, файлы git на S3 будут приватными (что мы и хотели). Затем создайте корзину S3 для хранения вашего репозитория, назовем его git-repos, а затем создайте репозиторий git для загрузки:
s3cmd mb s3://git-repos
mkdir chef-recipes
cd chef-recipes
git init
touch README
git add README
git commit README
git remote add origin amazon-s3://[email protected]/chef-recipes.git
В приведенном выше примере я использую инструмент командной строки s3cmd для создания корзины, но вы можете сделать это и через веб-интерфейс Amazon. Теперь давайте доведем его до S3 (обратите внимание, как мы используем jgit всякий раз, когда мы взаимодействуем с S3, и стандартный git в противном случае):
jgit push origin master
Теперь перейдите в другое место (например, cd/tmp) и попробуйте клонировать его:
jgit clone amazon-s3://[email protected]/chef-recipes.git
Когда приходит время обновить его (поскольку jgit не поддерживает слияние или извлечение), вы делаете это в 2 шага:
cd chef-recipes
jgit fetch
git merge origin/master
2 Использовать файловую систему на основе FUSE, поддерживаемую Amazon S3
Получите учетную запись Amazon S3!
Скачайте, скомпилируйте и установите. (см. примечания по установке)
Укажите свои учетные данные безопасности (идентификатор ключа доступа и секретный доступ)
Ключ) одним из следующих способов:
используя параметр командной строки passwd_file
установка переменных среды AWSACCESSKEYID и AWSSECRETACCESSKEY
используя файл .passwd-s3fs в вашем домашнем каталоге
использование общесистемного файла /etc/passwd-s3fs
сделать это
.
/usr/bin/s3fs mybucket /mnt
Вот оно! содержимое вашего амазонского ведра "mybucket" теперь должно быть доступно для чтения/записи в /mnt
Ответ 2
Dandelion - еще один инструмент CLI, который будет хранить хранилища Git в синхронизации с S3/FTP/SFTP:
http://github.com/scttnlsn/dandelion
Ответ 3
git -s3 - https://github.com/schickling/git-s3
Вам просто нужно запустить git-s3 deploy
Он поставляется со всеми преимуществами репо git и загружает/удаляет только файлы, которые вы изменили.
Примечание. Развертывания не подразумеваются с помощью git push, но вы можете достичь этого с помощью git.
Ответ 4
Вы можете использовать mc aka Minio client, написанный в Голанге и доступный под лицензией Open Source Apache. Он доступен для Mac, Linux, Windows, FreeBsd. Вы можете использовать команду mc mirror
для достижения вашего требования.
mc GNU/Linux Загрузить
64-bit Intel from https://dl.minio.io/client/mc/release/linux-amd64/mc
32-bit Intel from https://dl.minio.io/client/mc/release/linux-386/mc
32-bit ARM from https://dl.minio.io/client/mc/release/linux-arm/mc
$ chmod +x mc
$ ./mc --help
Настройка mc для Amazon S3
$ mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
- Замените ключ доступа/секретный ключ
- По умолчанию mc использует подпись версии 4 amazon S3.
- mys3 - псевдоним Amazon S3 для клиента minio
Зеркальное отображение локального репозитория/каталога github: name mygithub
для названия амазонки S3 mygithubbkp
$ ./mc mirror mygithub mys3/mygithubbkp
Надеюсь, что это поможет
Отказ от ответственности: я работаю для Minio
Ответ 5
Вы можете использовать службу deplybot (http://deploybot.com/), которая бесплатна для одного репозитория git.
Вы можете автоматизировать развертывание, выбрав "автоматический" в разделе режима развертывания.
Я использую его сейчас. Это очень легко и полезно.
Ответ 6
версия управляет вашими файлами с помощью Github? Этот script (и связанные с ним конфигурации GitHub/AWS) предпримет новые коммиты для вашего репо и синхронизирует их с вашей корзиной S3.
https://github.com/nytlabs/github-s3-deploy
Ответ 7
Для этого вам нужен JGit.
Просто сохраните файл .jgit в каталоге пользователя с учетными данными aws, и вы сможете использовать git с s3.
Вот как будет выглядеть ваш git url.
amazon-s3://[email protected]/myproject.git
Вы можете делать все, что вы делаете с git
с jgit
.
Получить полное руководство по установке здесь.
https://metamug.com/article/jgit-host-git-repository-on-s3.html