Опубликовать на 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

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

  2. Скачайте, скомпилируйте и установите. (см. примечания по установке)

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

    • используя параметр командной строки 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