Опубликовать в S3 с помощью Git?


кто-нибудь знает, как это сделать? До сих пор я не смог найти ничего полезного через Google.

Я бы очень хотел настроить локальное РЕПО и использовать git push чтобы опубликовать его в S3, идея состоит в том, чтобы иметь локальный контроль версий над активами, но удаленное хранилище на S3.

можно ли это сделать, и если да, то как?

7 79

7 ответов:

1 Использовать JGit через http://blog.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html

скачать jgit.sh, переименуйте его в jgit и поместите его в свой путь (например, $HOME/bin).

настройки .Jgit config file и добавьте следующее (подставляя ключи 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://.jgit@git-repos/chef-recipes.git

в приведенном выше примере я использую инструмент командной строки s3cmd для создания ведра, но вы также можете сделать это через веб-интерфейс Amazon. Теперь давайте подтолкнем его к S3 (обратите внимание, как мы используем jgit всякий раз, когда мы взаимодействуем с S3, и стандартный git в противном случае):

jgit push origin master

теперь идите куда-нибудь еще (например, cd /tmp) и попробуйте клонировать это:

jgit clone amazon-s3://.jgit@git-repos/chef-recipes.git

когда приходит время обновить его (потому что jgit не поддерживает слияние или вытягивание), вы делаете это в 2 этапа:

cd chef-recipes
jgit fetch
git merge origin/master

2 использовать файловая система на основе предохранителей, поддерживаемая Amazon S3

  1. получить учетную запись Amazon S3!

  2. скачать, скомпилировать и установить. (см. InstallationNotes)

  3. укажите свои учетные данные Безопасности (идентификатор ключа доступа и секрет Доступ Ключ) одним из следующих способов:

    • С помощью параметра командной строки passwd_file

    • установка переменных окружения AWSACCESSKEYID и AWSSECRETACCESSKEY

    • С помощью a .passwd-s3fs файл в вашем домашнем каталоге

    • используя общесистемный/etc / passwd-s3fs файл

    • do это

.

/usr/bin/s3fs mybucket /mnt

вот именно! содержимое вашего Amazon bucket "mybucket" теперь должно быть доступно для чтения /записи в / mnt

Dandelion-это еще один инструмент CLI, который будет синхронизировать репозитории Git с S3 / FTP/SFTP: http://github.com/scttnlsn/dandelion

git-s3 - https://github.com/schickling/git-s3

вы просто должны запустить git-s3 deploy

Он поставляется со всеми преимуществами РЕПО git и загружает / удаляет только файлы, которые вы изменили.
Примечание: развертывание не является неявным с помощью git push, но вы можете достичь этого с помощью Git hook.

можно использовать mc aka Minio client, его написано в Golang и доступно под лицензией 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 Амазонки С3.
  • mys3-это псевдоним Amazon S3 для клиента minio

зеркальное отображение локального репозитория/каталога github say name mygithub к имени корзины amazon S3 mygithubbkp

$ ./mc mirror mygithub mys3/mygithubbkp

надеюсь, что это помогает Отказ от ответственности : я работаю на Minio

вы можете использовать deplybot (http://deploybot.com/) сервис, который является бесплатным для одного репозитория git.

вы можете автоматизировать развертывание, выбрав "автоматический" в разделе Режим развертывания.

Я использую его сейчас. Это очень легко и полезно.

контроль версий ваших файлов с помощью Github? Этот скрипт (и связанные с ним конфигурации GitHub / AWS) будут принимать новые коммиты в ваше РЕПО и синхронизировать их в вашем ведре S3.

https://github.com/nytlabs/github-s3-deploy

вам нужно JGit для него.

просто сохранить .файл jgit в каталоге пользователя с учетными данными aws, и вы можете использовать git с s3.

вот как будет выглядеть ваш git url.

amazon-s3://.jgit@mybucket/myproject.git

вы можете делать все, что вы делаете с git С jgit.

получить полное руководство по установке здесь.

https://metamug.com/article/jgit-host-git-repository-on-s3.php