web-dev-qa-db-fra.com

Publier sur S3 en utilisant Git?

Est-ce que quelqu'un sait comment faire ça? Jusqu'à présent, je n'ai rien trouvé d'utile via Google.

J'aimerais vraiment configurer un dépôt local et utiliser git Push pour le publier sur S3, l'idée étant d'avoir un contrôle de version local sur les actifs mais un stockage distant sur S3.

Est-ce possible et si oui comment?

81
Andrew

1 Utilisez JGit via http://blog.spearce.org/2008/07/using-jgit-to-publish-on- Amazon-s3.html

Téléchargez jgit.sh, renommez-le en jgit et placez-le dans votre chemin (par exemple $ HOME/bin).

Configurez le fichier de configuration .jgit et ajoutez les éléments suivants (en remplaçant vos clés AWS):

$ vim ~/.jgit

accesskey: aws access key
secretkey: aws secret access key

Notez qu'en ne spécifiant pas acl: public dans le fichier .jgit, les fichiers git sur S3 seront privés (ce que nous voulions). Créez ensuite un compartiment S3 dans lequel stocker votre référentiel, appelons-le git-repos, puis créez un référentiel git à télécharger:

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

Dans ce qui précède, j'utilise l'outil de ligne de commande s3cmd pour créer le compartiment, mais vous pouvez également le faire via l'interface Web d'Amazon. Passons maintenant à S3 (notez comment nous utilisons jgit chaque fois que nous interagissons avec S3, et git standard sinon):

jgit Push Origin master

Allez maintenant ailleurs (par exemple cd/tmp) et essayez de le cloner:

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

Quand vient le temps de le mettre à jour (parce que jgit ne prend pas en charge la fusion ou l'extraction), vous le faites en 2 étapes:

cd chef-recipes
jgit fetch
git merge Origin/master

2 Use Fuse-based file system backed by Amazon S

  1. Obtenez un compte Amazon S3!

  2. Téléchargez, compilez et installez. (voir Notes d'installation)

  3. Spécifiez vos informations d'identification de sécurité (ID de clé d'accès et clé d'accès secrète) par l'une des méthodes suivantes:

    • à l'aide de l'option de ligne de commande passwd_file

    • définition des variables d'environnement AWSACCESSKEYID et AWSSECRETACCESSKEY

    • en utilisant un fichier .passwd-s3fs dans votre répertoire personnel

    • en utilisant le fichier/etc/passwd-s3fs à l'échelle du système

    • fais ça

.

/usr/bin/s3fs mybucket /mnt

C'est ça! le contenu de votre compartiment Amazon "mybucket" devrait maintenant être accessible en lecture/écriture dans/mnt

50
Riceball LEE

Dandelion est un autre outil CLI qui gardera les référentiels Git synchronisés avec S3/FTP/SFTP: http://github.com/scttnlsn/dandelion

10
scttnlsn

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

Il vous suffit d'exécuter git-s3 deploy

Il est livré avec tous les avantages d'un dépôt git et télécharge/supprime uniquement les fichiers que vous avez modifiés.
Remarque: les déploiements ne sont pas implicites via git Push mais vous pouvez y parvenir via un git hook.

8
schickling

Vous pouvez utiliser mc aka Minio client , son écrit en Golang et disponible sous licence Apache Open Source. Il est disponible pour Mac, Linux, Windows, FreeBsd. Vous pouvez utiliser mc mirror commande pour répondre à vos besoins.

mc GNU/Linux Télécharger

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

Configuration de mc pour Amazon S3

$ mc config Host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
  • Remplacez par votre clé d'accès/secrète
  • Par défaut, mc utilise la version de signature 4 d'Amazon S3.
  • mys3 est un alias Amazon S3 pour le client minio

Mettez en miroir votre référentiel/répertoire local github, dites le nom mygithub au nom du compartiment Amazon S3 mygithubbkp

$ ./mc mirror mygithub mys3/mygithubbkp

J'espère que cela aide. Avertissement: je travaille pour Minio

2
koolhead17

Vous pouvez utiliser le service deplybot ( http://deploybot.com/ ) qui est gratuit pour le référentiel git unique.

Vous pouvez automatiser le déploiement en choisissant "automatique" dans la section mode de déploiement.

Je l'utilise maintenant. C'est très simple et utile.

1
Jayaprakash

Vous avez besoin de JGit pour cela.

Enregistrez simplement un fichier .jgit dans le répertoire utilisateur avec les informations d'identification aws et vous pouvez utiliser git avec s3.

Voici à quoi ressemblera votre URL Git.

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

Vous pouvez faire tout ce que vous faites avec git avec jgit.

Obtenez un guide d'installation complet ici.

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

0
Sorter

version contrôle vos fichiers avec Github? Ce script (et ses configurations GitHub/AWS associées) prendra de nouvelles validations dans votre référentiel et les synchronisera dans votre compartiment S3.

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

0
Max Hodges